加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么这些非捕获正则表达式组不能正常工作?

发布时间:2020-12-14 05:50:39 所属栏目:百科 来源:网络整理
导读:所以我花了很多时间在另一个堆栈溢出问题上,并且前一个问题出现了同样的问题.非捕获组不像我期望的那样工作,或者我相信. 这是一个愚蠢的例子,沿着别人的CSS测试字符串…… 这是我的正则表达式: (?:(rgb([^)]*)|S+)(?:[ ]+)?)* 这是测试字符串: 1px soli
所以我花了很多时间在另一个堆栈溢出问题上,并且前一个问题出现了同样的问题.非捕获组不像我期望的那样工作,或者我相信.

这是一个愚蠢的例子,沿着别人的CSS测试字符串……

这是我的正则表达式:

(?:(rgb([^)]*)|S+)(?:[ ]+)?)*

这是测试字符串:

1px solid rgb(255,255,255) test rgb(255,255)

我期待匹配组“1px”,“solid”,“rgb(255,255)”,“test”,255)”

但我只得到最后一个令牌匹配.

这是测试的链接:

http://regex101.com/r/pK1uG7

这里出了什么问题?我以为我有非捕获组,并且它在regex101底部解释的方式是有道理的,包括“贪婪”.

解决方法

捕获组会覆盖每个先前的匹配.捕获组#1首先匹配“1px”,然后捕获组#1匹配“solid”覆盖“1px”,然后匹配“rgb(255,255)”覆盖“solid”等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读