• 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
    >
  • 相关阅读:
    Python中 sys.argv[]的用法简明解释
    Python-函数的递归调用
    第二模块闯关练习
    python项目中输出指定颜色的日志
    PyCharm 常用快捷键和设置
    time模块和datetime模块详解
    ansible模块lineinfile
    nginx日志分析
    iptables实现正向代理
    sersync2 安装,配置
  • 原文地址:https://www.cnblogs.com/perl6/p/7414275.html
Copyright © 2020-2023  润新知