【问题标题】:Perl Regular Expression simplificationPerl 正则表达式简化
【发布时间】:2011-04-18 18:05:34
【问题描述】:

我想简化以下陈述。

if($_=~/^([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])/)

是否有另一种方法可以编写上述语句而无需重复 [0-9a-fA-F] n 次?

【问题讨论】:

    标签: regex perl repeat simplification


    【解决方案1】:

    您可以使用Quantifiers

    {n} 精确匹配 n 次

    if (/^([0-9a-fA-F]{5})/)
    

    同样,您可以使用 POSIX 字符类

    xdigit 任何十六进制数字 (“[0-9a-fA-F]”)。

    if (/^([[:xdigit:]]{5})/)
    

    【讨论】:

    • +1 表示[:xdigit:],更清楚地传达了代码的意图。
    【解决方案2】:

    试试这个

    if($_=~/^([0-9a-fA-F]{5})/)
    

    【讨论】:

      【解决方案3】:

      甚至

      if( /^([0-9a-fA-F]{5})/ )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多