gpt4 book ai didi

regex - Perl 模式匹配未按预期工作

转载 作者:行者123 更新时间:2023-12-01 12:24:50 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式匹配可能以逗号分隔的值。基本上,如果字符串中的任何值从第 3 个位置开始没有 3g 或 3k,我想返回 true。

我的测试代码如下:

my @a = ('in3g123456,dh3k123456,dhec110101','dhec110101,dhec123456','in3g123456,dh3k123456', 'c3kasdf', 'usdfusdufs3gsdf' );

foreach (@a) {
print $_;
say $_ =~ /(?:^|,)\w{2}[^(?:3G|3K)]/i ? " true" : " false";
}

返回

in3g123456,dh3k123456,dhec110101 true
dhec110101,dhec123456 true
in3g123456,dh3k123456 false
c3kasdf false <- whaaaaaaaat?
usdfusdufs3gsdf true

我不明白为什么第 4 个不是真的。任何帮助将不胜感激。

最佳答案

[^(?:3G|3K)] 读作“除 (? 等之外的任何字符。”

                      failed
v
c3 kasdf
/(?:^|,)\w{2}[^(?:3G|3K)]/i

使用这个:

/(?:^|,)\w{2}(?!3G|3K)/i

演示:https://regex101.com/r/P2XsgN/1 .

关于regex - Perl 模式匹配未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41024498/

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