^(?:(?:0(:?\.[0-9])?)|(?:1(?:\.0)?))$
应该(我不是正则表达式大师)匹配RGBA / HSLA的alpha组件(0
,0.0 to 0.9
,1
,{ {1}})。
但是当我使用Rubular with this regex/test string时,我会得到一个匹配的1.0
组,其中包含测试字符串1.
,我会得到一个匹配的组1.0
,其中包含测试字符串.9
我不需要捕捉群体......我做错了什么?
答案 0 :(得分:2)
你正在为此获得小组:
^(?:(?:0(:?\.[0-9])?)|(?:1(?:\.0)?))$
^^ its a mistake i believe
应该是:
^(?:(?:0(?:\.[0-9])?)|(?:1(?:\.0)?))$
^^
:?
表示可选冒号。所以它总是与你的输入相匹配。而?:
表示忽略您已经使用的群组捕获。