Perl 6 的正则表达式
与 Perl 5 相同的部分: ## 分组捕获: ? ? > if 'abababc' ~~ / ('ab'+) / { say $0 } ?????ababab? ## 重复数量 `?` `+` `*` `+?` `*?` ? ? > if 'abcde' ~~ / ('ab'?) ('cd'+) ('e'*) / { say "$0 $1 $2" } ????ab cd e ## 反斜杠字符集 w s d n t v ????> if 'abcde' ~~ / w+ / { say 'match' } ????match 不同的地方: 分组匿名捕获,是从 $0 开始的,而 Perl 5 是从 $1.? ????> if 'ab' ~~ / (w+) / { say $0.Str } ? ? ab 固定数量符号,不再是 { $m,$n } 的形式: ? ? 'ababab' ~~ / 'ab' ** 1..3 / ????'ababab' ~~ / 'ab' ** 3 / ????'ababab' ~~ / 'ab' ** 1..* / 字符串也出现在正则表达式中,也是一种不捕获匿名分组: ? ? ?> 'ababaw+' ~~ / 'ababaw+' / ???? True ? ? ? > ?'cde*?' ~~ / "cde*?" / ????? True 字符类现在用尖括号包围起来了: ????‘abcd' ~~ / <[abcd]>+ / ? ? ? ?'abcd' ~~ / <[w]>+ / 既然包围起来了,就能进行一些求并集和差集的计算了: ????????‘abcd123' ~~ / <[abcd] + [123]> / 字符集求反不再是 [^abc] 的格式: ? ? 'zzz' ~~ / <-[abc]> / (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |