.net - .NET Regex 类的运算符优先级在哪里记录?

标签 .net regex operator-precedence

.NET Regex 记录的运算符优先级顺序在哪里?类(class)?

我看到this ,但那是针对 JScript 的。

此外,这似乎不受 RegexOptions.ECMAScript 的影响。 ,但确认会有所帮助。

最佳答案

我认为真正的答案并不像你想的那么简单。简短(且不完整)的答案只是“所有表达式都从左到右求值”......

长答案去这里。

http://msdn.microsoft.com/en-us/library/e347654k.aspx

The .NET Framework regular expression engine is a backtracking regular expression matcher that incorporates a traditional Nondeterministic Finite Automaton (NFA) engine ... traditional NFA engines perform pattern matching, their processing order is driven by the regular expression pattern. As it processes a particular language element, the engine uses greedy matching; that is, it matches as much of the input string as it possibly can. But it also saves its state after successfully matching a subexpression. If a match eventually fails, the engine can return to a saved state so it can try additional matches.



编辑:忘记回答问题的第二部分。

关于 RegexOptions.ECMAScript,您可以引用以下文档:

http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx

The behavior of ECMAScript and canonical regular expressions differs in three areas: character class syntax, self-referencing capturing groups, and octal versus backreference interpretation.



看起来“订单”没有受到影响,但可能还有其他问题。文档很好地说明了差异。

关于.net - .NET Regex 类的运算符优先级在哪里记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9385829/

相关文章:

c++ - 不指定函数参数求值的确切顺序如何帮助 C 和 C++ 编译器生成优化代码?

c# - GUI 故障 : Checkbox text shown incomplete in Windows 8

c# - WPF多级绑定(bind)线程问题

c# - 为什么 BinaryFormatter 试图在可序列化类上序列化事件?

c# - 制作一个返回 BLOB 的 get api .net core (EF)

Python正则表达式查找匹配: word + whitespace + word的序列

c - "d = (((INT32) a) * ((INT32) b))"中的外括号重要吗?

C++逻辑替代运算符

python - 如何捕获前瞻性后视正则表达式 python

Python - 如何从输入文本文件中仅编写以 $ 开头的 case 语句和实例?