Ayo*_*o I 0 regex microsoft-expression-web regex-greedy
所以我想使用下面的正则表达式搜索字符串:
border-.*\.5pt
Run Code Online (Sandbox Code Playgroud)
找到所有border-top
,border-bottom
在与的边框厚度文件等CSS属性.5pt
.它通常效果很好,但它太贪心了.
例如,以下所有内容都以单个匹配的形式返回:
border-top:solid #1F497D .5pt;border-bottom:solid #1F497D .5pt
Run Code Online (Sandbox Code Playgroud)
我希望这两个CSS属性是两个单独的匹配.
所以我试着将我的正则表达式修改为:
border-.*?\.5pt
Run Code Online (Sandbox Code Playgroud)
用?
它来使它不贪婪.但是,在修改之后,没有任何匹配.
谁能解释为什么我看到这种行为?我错过了什么?
(如果值得了解的话,我在进行此搜索时使用的是Microsoft Expression Web的"使用正则表达式查找".)
没有一种"正则表达"语言.虽然存在广泛的共性,但细节因实施而异.许多正则表达式使用-
非贪婪的"0或更多",其他人正在使用*?
.显然Microsoft Expression Web使用@
.
简而言之,正则表达式可能有所不同,因此您经常需要使用RTM来查找其功能范围和详细语法(即支持更改/回溯/等,分组字符,设置速记等). )