【发布时间】: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
我想简化以下陈述。
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
您可以使用Quantifiers
{n} 精确匹配 n 次
if (/^([0-9a-fA-F]{5})/)
同样,您可以使用 POSIX 字符类
xdigit 任何十六进制数字 (“[0-9a-fA-F]”)。
if (/^([[:xdigit:]]{5})/)
【讨论】:
[:xdigit:],更清楚地传达了代码的意图。
试试这个
if($_=~/^([0-9a-fA-F]{5})/)
【讨论】:
甚至
if( /^([0-9a-fA-F]{5})/ )
【讨论】: