perl6正则 2: 字母,数字,空格,下划线, 字符集
数字, 字母, 下划线
在perl6中, 如果是 数字, 字母, 下划线, 在正则里可以正接写上。
> so 'perl6' ~~ /6/ True > so 'perl6_' ~~ /_/ True >
非数字, 字母, 下划线
如果不是数字、字母、 下划线, 可以用 \ 反斜线转义, 或用单、双相号包围。
> 'name@company.uk' ~~ / name\@co / 锝ame@co锝? > 'name@company.uk' ~~ / name'@'co / 锝ame@co锝? > 'name@company.uk' ~~ / name"@"co / 锝ame@co锝? >
空格
空格默认是忽略的, 比如, /ab cde/ 相等于 /abcde/。
> so 'ab cde' ~~ /ab cd/ False > so 'ab cde' ~~ /ab \s cd/ False > so 'ab cde' ~~ /ab \s+ cd/ True >
<[]> / <-[]>字符集
用<[]>定义字符集, 范围符号用 ..
如果要取反, 可以用这种形式: <-[]>
> so ('abc1de' ~~ /<-[a12bdf_ec@#.?+$]>/) False > ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?+$]>/) a >
在字符集中, 不用转义圆点与非字母字符
> ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\]>/) a > ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\`]>/) a > ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\`~]>/) a > ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\`~-]>/) - > ~ ('-abc1de' ~~ /<[-a12bdf_ec@#.?^+$/\\`~]>/) - > ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>/) - >
有一点要注意的就是: - 符号, 除了放在开头或结尾外, 在字符集中的其他地方要转义。 同样, 要转义的还有 / 符号。
当然, 量词 ? / * / + / **之类的也能用于一个字符集:
> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>**3/) -ab > ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>?/) - > ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>+/) -abc1de > ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>*/) -abc1de > ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>**2/) -a > ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>**5/) -abc1 >
- 上一篇 »php中变量的命名规则
- 下一篇 »php模板页语法