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

Moh*_*deh 10 c# regex

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

Perl兼容正则表达式(PCRE)是一个正则表达式C库,受到Perl编程语言中正则表达式功能的启发,由Philip Hazel编写,从1997年夏天开始.PCRE的语法比任何一个POSIX正则表达式都强大和灵活风味和许多经典正则表达式库.这个名称具有误导性,因为PCRE和Perl都具有其他人无法共享的功能.

资源

Luc*_*ski 15

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

几个例子:

PCRE

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

.净

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

这份清单并非详尽无遗.您可以在此页面和兄弟页面上比较两种风格.

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