gpt4 book ai didi

正则表达式 exp 只检测一次 "abc-xxx"模式

转载 作者:行者123 更新时间:2023-12-02 00:07:05 24 4
gpt4 key购买 nike

这是一个字符串列表

  1. abc-1234 嗨你好~abc-3456 好的~abc-4456
  2. abc-1234
  3. abc-2356 hi~abc-1234 ok
  4. abc-1234 好的~abc-1234 你好
  5. abc-1234 好的~abc-1234 你好~abc-1456 好的好的

需要编写一个正则表达式模式来检测 abc-1234 是否是唯一存在的“abc-”模式并匹配它。如果 abc-1234 与另一个 abc-xxxx 模式一起出现,我们不应该匹配。换句话说,当 abc-1234 是唯一存在的 abc- 模式时,我需要编写一个正则表达式模式来匹配 abc-1234 的出现。请注意,abc 模式始终以“~”开头

所以在上述情况下,当我们尝试在正则表达式模式和字符串之间进行匹配时,我们会得到以下结果:1.不匹配2.火柴3.不匹配4.火柴5.不匹配

正则表达式专家可以帮助我吗?

谢谢!

最佳答案

使用正负 lookeheads:

use strict; use warnings;
my @s = ('abc-1234 hi hello~abc-3456 ok~abc-4456',
'abc-1234', 'abc-2356 hi~abc-1234 ok', 'abc-1234 ok~abc-1234 hello',
'abc-1234 ok~abc-1234 hello~abc-1456 ok ok');

for my $s (@s) {
if ($s !~ /^abc-(\d+)(?=.*~abc-(?!\1))/) {
print "$s\n";
}
}

输出

abc-1234
abc-1234 ok~abc-1234 hello

关于正则表达式 exp 只检测一次 "abc-xxx"模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688806/

24 4 0