什么是PCRE兼容语法?和C#PCRE兼容吗?

时间:2014-10-22 09:24:18

标签: c# regex

什么是PCRE兼容语法?和C#PCRE兼容吗? 从维基百科我发现了这个:

  

Perl兼容正则表达式(PCRE)是正则表达式C.   库灵感来自Perl中的正则表达式功能   编程语言,由Philip Hazel编写,从夏天开始   PCRE的语法比POSIX正则表达式和许多经典的常规语言更加强大和灵活。   表达库。该名称具有误导性,因为PCRE和Perl   每个人都有其他人不共享的能力。

Source

1 个答案:

答案 0 :(得分:14)

C#正则表达式与PCRE正则表达式共享一些语法。大多数功能都重叠,但两个库都有自己的细节:

几个例子:

<强> PCRE

  • 支持递归
  • 支持回溯控制动词
  • 支持(?(DEFINE) ... )
  • 等结构
  • 支持更多选项
  • 提供DFA解析模式
  • 支持部分匹配
  • 支持\K
  • 支持X++简写语法(相当于(?>X+)

<强> .NET

  • 支持捕获堆栈和重复命名组
  • 支持平衡组
  • 支持可变长度的lookbehind

此列表并非详尽无遗。您可以比较this page和兄弟页面上的两种风格。

鉴于存在差异,我希望能够使用.NET中的PCRE正则表达式,并且最近启动了PCRE.NET,这是一个包装项目。它尚未完成,但已开始可用。