我认为真正的答案并不像你想象的那么简单。简短(且不完整)的答案只是“所有表达式都从左到右进行评估”...
要了解详细答案,请点击这里。
http://msdn.microsoft.com/en-us/library/e347654k.aspx
.NET Framework 正则表达式引擎是一个回溯正则表达式匹配器,它包含了传统的非确定有限状态自动机(NFA)引擎... 传统的 NFA 引擎执行模式匹配,其处理顺序由正则表达式模式驱动。当它处理特定的语言元素时,引擎使用贪婪匹配;也就是说,它尽可能地匹配输入字符串的大部分内容。但是,它还会在成功匹配子表达式后保存其状态。如果匹配最终失败,引擎可以返回到保存的状态,以便尝试其他匹配。编辑:忘记回答您问题的第二部分了。
关于 RegexOptions.ECMAScript,您可以参考这些文档:
ECMAScript和规范正则表达式的行为在三个方面有所不同:字符类语法、自引用捕获组和八进制与反向引用解释。看起来"order"没有受到影响,但可能存在其他问题。文档很好地说明了这些差异。^\d
将是字符串开头的斜杠(^\),后跟一个字面上的 d
。 - Matthew Flaschen
^(?:this|that)$
- Matthew Flaschen