加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl 6 的正则表达式

发布时间:2020-12-15 23:48:13 所属栏目:大数据 来源:网络整理
导读:它保留了 Perl5 的一些特性: 分组捕获: (...) 数量声明: + * ? +? *? ?? 字符转义: t b n r 分支: | 内置字符集: w d s h v 在 Perl6 的正则中,除了 a-z,A-Z, _`` 之外,都可能是特殊符号。 字符串字面量 'a+b',"a+b" 字符串字面量将匹配和它们一

它保留了 Perl5 的一些特性:

  • 分组捕获: (...)
  • 数量声明: + * ? +? *? ??
  • 字符转义: t b n r
  • 分支: |
  • 内置字符集: w d s h v

Perl6的正则中,除了 a-z,A-Z,_`` 之外,都可能是特殊符号。

  • 字符串字面量 'a+b',"a+b" 字符串字面量将匹配和它们一样的字符,其中所有的字符都是普通字符。

  • 空格 'a+b' "b+c" 在 Perl6 默认的正则序列中,空格是被忽略的,这样就可以插入任意注释。 来增加表达式的可读性。

  • 注释 # 'a+b' # match 'a+b' 注释从井号开始,直到行的末尾

  • 匹配数量限定 (ab) ** 1,5

  • 最长匹配分支 || 这是 Perl6 新增的特性,使用这个符号的分支,最终胜出的将是匹配字符长度 最长的那个分支 'a+b' || 'a+b+c' || 'a+b+c+d'

  • 标量内插 $var 标量内插的效果和将标量代表的字符串的字面量写出来是一样的。 相当于 Perl5 的 Q$varE

  • 数组内插 @array 数组内插建立了一个字符串字面量的分支 @array[0] | @array[1] | @array[2]

  • 不捕获分组 [...] 不再是 (?:...),这样可以少写一个字符。

  • 自定义字符集 不再是 [...],这种写法分配给了不捕获分组,那么自定义字符集用什么呢? 是 <[...]>,字符集取反是 <-[...]>. 因为字符集不能嵌套,也无须嵌套。 所以 [...] 的记法分配给了用处更广泛的非捕获分组。

  • 任意字符 . 点可以匹配任意字符,包括回车符 n

  • 内置正则子表达式 <ident> <ws> <ww> 内置正则子表达式默认会进行命名捕获,捕获的名称就是尖括号中间的值。 <.ident> <.ww> 前导点的形式,是不进行捕获的意思。

  • 向前看零宽断言 <before pattern> 如果前面(字符串右边)将会匹配 pattern 的话,才算匹配,但并不会让匹配指针发生位移。 对 pattern 取反,用 <!before pattern>

  • 向后看零宽断言 <after pattern> 如果后面(字符串左边)已经匹配了 pattern 的话,才算匹配,也不消耗匹配字符串。 对 pattern 取反,用 <!after pattern>

作者:perlvim 时间:2015-1-25 (完)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读