gpt4 book ai didi

regex - 在 Perl 正则表达式中使用量词而不是仅仅重复字符是否有令人信服的理由?

转载 作者:行者123 更新时间:2023-12-04 02:31:11 27 4
gpt4 key购买 nike

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

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] ?

关于regex - 在 Perl 正则表达式中使用量词而不是仅仅重复字符是否有令人信服的理由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2547578/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com