Go (RE2)

CSS rgb() Color in GO

Match CSS rgb() and rgba() color functions, including an optional alpha channel.

Try it in the GO tester →

Pattern

regexGO
rgba?\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}(?:\s*,\s*(?:0|1|0?\.\d+))?\s*\)   (flags: gi)

Go (RE2) code

goGo
package main

import (
	"fmt"
	"regexp"
)

func main() {
	re := regexp.MustCompile(`(?i)rgba?\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}(?:\s*,\s*(?:0|1|0?\.\d+))?\s*\)`)
	input := `rgb(255, 87, 51)`
	for _, match := range re.FindAllString(input, -1) {
		fmt.Println(match)
	}
}

Uses `regexp.MustCompile` (panics on bad patterns at startup) and `FindAllString` for all matches.

How the pattern works

Matches rgb( or rgba( followed by three comma-separated 1–3 digit components and an optional fourth alpha component (0, 1, or decimal).

Examples

Input

rgb(255, 87, 51)

Matches

  • rgb(255, 87, 51)

Input

rgba(0, 0, 0, 0.5)

Matches

  • rgba(0, 0, 0, 0.5)

Input

color: blue;

No match

Same pattern, other engines

← Back to CSS rgb() Color overview (all engines)