正则表达式的支持

文档版本:5.6日期:2009年9月1日

概述

椭圆形的语言都支持一个共同的子集正则表达式字符类,操作,表情和其他词汇令牌在Perl 5正则表达式定义的规范。这种常见的子集是通过调查发现几个正则表达式库,以确保总统将支持的正则表达式元素兼容各种正则表达式库。调查了正则表达式库的清单稍后提供文档。

回到顶部

支持正则表达式语法

Perl的正则表达式修饰符(m,我,年代,x)不受支持。这些修饰符应考虑总是‘OFF’,除非特别允许文档在一个椭圆形的语言结构。

字符匹配假设一个Unicode字符集。注意,没有语法提供用于指定十六进制代码点;实际必须使用Unicode字符。

下面的正则表达式元素具体确定为支持在椭圆形的语言。详细定义的正则表达式元素下面列出,指5.004 Perl的正则表达式的描述文档。这个文档的一个副本被保存了下来在这里供参考的目的。正则表达式的元素没有单独列出应该避免,因为他们可能会不兼容或与常用的正则表达式库有不同的含义。

元字符

\ "下一个字符^匹配的开始。匹配任何字符(除换行符)$匹配线的结束(或在换行符结束之前)|()交替分组[]字符类

贪婪量词

*匹配0次或更多+匹配1次或更多?匹配1或0 * {n}完全匹配n * {n}匹配至少n次{n, m}匹配至少n以上m乘以

不情愿的量词

* ?匹配0或多个* + ?匹配1次以上? ?{n}匹配0或1时间?完全匹配n次{n} ?匹配至少n乘以m} {n, ?匹配至少n以上m乘以

转义序列

选项卡\ t选项卡(HT) \ n换行符(低频,NL) \ r返回(CR) \ f形成饲料(FF) \ 033八进制char(认为)时)\ x1B十六进制字符c \[控制字符

字符类

\ w匹配一个“单词”字符(字母数字+“_”)\ w匹配一个单词字符\ s匹配一个空格字符\ s匹配一个非空字符\ d匹配一个数字字符\ d non-digit字符相匹配

零宽度断言

\ \ b匹配单词边界b匹配非(字边界)

扩展

(?:regexp)——集团没有捕获(? = regexp)任意积极超前断言(? ! regexp)——任意负超前断言

Version 8正则表达式

(字符)——匹配任何指定的字符(^字符)——匹配任何没有一个指定的字符(a - b)——匹配任何字符之间的“a”、“b”,包容| b -交替;匹配“|”的左侧或右侧\ n -当“n”是一个数字:第n个捕获组匹配。
回到顶部

调查了正则表达式库

下面的正则表达式库调查识别Perl 5正则表达式的一个常见的子集规范被广泛支持:

  • net
  • 提高
  • Java
  • JavaScript
  • PCRE
  • Perl 5.004(作为基线和参考的详细定义正则exrpression元素。)
  • Python

回到顶部