-
字符串字面量 '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>