正则表达式引擎尝试按指定的顺序匹配替代项。因此,当模式正确时,
(foo|foobar)&?它将
foo立即匹配并继续尝试查找匹配项。输入字符串的下一位
bar&b不能匹配。
换句话说,因为
foo是的一部分
foobar,所以
(foo|foobar)永远不会匹配
foobar,因为它将始终
foo首先匹配。
实际上,有时候这可能是一个非常有用的技巧。该模式
(o|a|(w))将允许您捕获
w和
a或以其他方式捕获
o:
Regex.Replace("a foobar& b", "(o|a|(\w))", "") // fbr& b
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)