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