我正在为一位同事进行代码审查,他有一个正则表达式,如下所示:

if ($value =~ /^\d\d\d\d$/) {
    #do stuff
}

我告诉他他应该将其更改为:
if ($value =~ /^\d{4}$/) {
    #do stuff
}

他回答说,为了可读性他更喜欢第一个(我发现第二个更具可读性,但这是一个宗教辩论,我将保留第二天)。

我的问题是:一个人对另一个人有实际好处吗?

最佳答案

他们做的事情完全相同,因此就实用性而言,这是一个优先考虑的问题。一种或另一种性能差异是否很小?谁知道,但这绝对是微不足道的。

当模式长度不固定时,例如\d{12,16}\d{2,}等,量词更加有用(并且是必需的)。

我更喜欢\d{4},它比\d\d\d\d更容易让我的大脑解析

如果要匹配的是字符类而不是简单的数字,该怎么办? [aeiouy0-9]{4}[aeiouy0-9][aeiouy0-9][aeiouy0-9][aeiouy0-9]吗?

10-08 11:30