(..|. .. .|..)
运算符中表达式的优先级顺序是什么-从左到右,从右到左或其他?
从左到右,第一个备选匹配“胜利”,不检查其他。这是典型的NFA正则表达式行为。在regular-expressions.info备用页面上提供了有关该行为的良好描述。
请注意,RegexOptions.RightToLeft
仅使正则表达式引擎从右到左检查输入字符串,修饰符不会影响正则表达式引擎如何处理模式本身。
让我说明一下:如果您有一个(aaa|bb|a)
正则表达式,并尝试在bbac
using中找到一个匹配项,Regex.Match
则将获得的值是bb
因为a
出现在之后bbb
。如果你使用Regex.Matches
,你会得到所有比赛,都bb
和a
会在你的结果降落。
同样,从左到右检查正则表达式模式的事实清楚表明,在非锚定替代组内,替代的顺序很重要。如果您使用(a|aa|aaa)
regex进行匹配abbccaa
,则第a
一种选择是匹配a
字符串中的每个(请参阅regex演示)。添加单词边界后,您可以按任何顺序放置替代项(请参阅另一个regex演示)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句