例:
/(?:美孚){0}酒吧/
我在另一个答案中看到了类似的东西.起初我想"应该是什么",然后,"好的可能有意义,背后有一种负面的看法",所以Foo以前不允许bar,但这不起作用.
你可以在Regexr上看到这个:它只匹配,bar但它也与barin 匹配Foobar.
当我为行的开头添加锚点时:
/^(?:Foo){0}bar/
Run Code Online (Sandbox Code Playgroud)
它表现得像我期待的那样.它只是相匹配bar,而不是bar在Foobar.
但这与我只使用/bar/或使用的行为完全相同/^bar/.
量词{0}只是一种无用的副作用,还是真的有用的行为呢?
Kob*_*obi 11
有很好的用途{0}.它允许您定义目前不打算捕获的组.在某些情况下,这可能很有用:
最好的一个 - 在递归正则表达式(或其他奇怪的结构)中使用该组.例如,Perl具有(?(DEFINE) )相同的用途.
一个简单的例子 - 在PHP中,这将匹配barFoo(工作示例):
preg_match("/(?:(Foo)){0}bar(?1)/", "barFoo", $matches);
Run Code Online (Sandbox Code Playgroud)将失败的捕获组(命名或编号)添加到结果匹配.
正如彼得所建议的那样,不太好用的用途是:
{0}和{1}可能导致在正确的方向思考.(好吧,不是最好的一点)这些都是罕见的情况,在大多数模式中都是错误的.
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |