Perl正则表达式简化

Jea*_*ean 2 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])/)
Run Code Online (Sandbox Code Playgroud)

有没有另外一种方法可以在不重复[0-9a-fA-F]的情况下编写上述语句n次?

too*_*lic 10

你可以使用量词

{n}完全匹配n次

if (/^([0-9a-fA-F]{5})/)
Run Code Online (Sandbox Code Playgroud)

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

xdigit任何十六进制数字("[0-9a-fA-F]").

if (/^([[:xdigit:]]{5})/)
Run Code Online (Sandbox Code Playgroud)

  • 对于`[:xdigit:]`+1,它更清楚地传达了代码的意图. (3认同)

ANi*_*sus 5

试试这个

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