gpt4 book ai didi

c# - 正则表达式运算符的顺序 (..|.. ... ..|..)

转载 作者:可可西里 更新时间:2023-11-01 08:23:11 26 4
gpt4 key购买 nike

(..|. ..|..) 运算符中表达式的优先级顺序是什么 - 从左到右,从右到左还是其他?

最佳答案

从左到右,第一个选项匹配“获胜”,不检查其他选项。这是典型的 NFA 正则表达式行为。 regular-expressions.info Alternation page 提供了对该行为的很好描述。 .

请注意,RegexOptions.RightToLeft 只会让正则表达式引擎从右到左检查输入字符串,修饰符不会影响正则表达式引擎处理模式本身的方式。

让我举例说明:如果您有一个 (aaa|bb|a) 正则表达式并尝试使用 Regex.Matchbbac 中找到匹配项code>,您将获得的值是 bb,因为 a 替代项出现在 bbb 之后。如果您使用 Regex.Matches,您将获得所有匹配项,并且 bba 都会出现在您的结果中。

此外,从左到右检查正则表达式模式这一事实清楚地表明,在非锚定替代组中,替代项的顺序很重要。如果您使用 (a|aa|aaa) 正则表达式来匹配 abbccaa,则第一个 a 替代项将匹配每个 a 在字符串中(参见 regex demo )。添加单词边界后,您可以按任何顺序放置替代项(请参阅 one more regex demo)。

关于c# - 正则表达式运算符的顺序 (..|.. ... ..|..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com