Question

^(?:(?:0(:?\.[0-9])?)|(?:1(?:\.0)?))$

Should (i'm not a regex guru) match the alpha component of RGBA/HSLA (0, 0.0 to 0.9, 1, 1.0).

However when I use Rubular with this regex/test string I get a matching group of 1. with test string 1.0 and I get a matching group .9 with test string 0.9.

I don't need to capture groups... what I'am doing wrong?

Was it helpful?

Solution

You are getting groups for this:

^(?:(?:0(:?\.[0-9])?)|(?:1(?:\.0)?))$
         ^^ its a mistake i believe

It should be:

^(?:(?:0(?:\.[0-9])?)|(?:1(?:\.0)?))$
         ^^

:? means optional colon. So it always matches with your input. Whereas ?: means ignore group capture, which you are already using.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top