gpt4 book ai didi

正则表达式不匹配字符串中的确切单词

转载 作者:行者123 更新时间:2023-12-04 01:03:07 26 4
gpt4 key购买 nike

我有以下字符串:

group.cluster.namespace.release.app.pod.timer.grpc.server.processing.duration.package.method.error.count

和一个正则表达式:

(?:[^.]+\.){11}([^.]+)\.([^.]+)\.([^.]+)\.(?:[^.]+)

那个produces a match :

Group 1: package
Group 2: method
Group 3: error

现在,当第 3 组 okcancelled 时,我想不匹配。我尝试了否定前瞻,但它不起作用。

(?:[^.]+\.){11}([^.]+)\.([^.]+)\.(?!ok|cancelled)\.(?:[^.]+)

上面的正则表达式有什么问题?

最佳答案

在具有负前瞻性的模式中,您必须再次匹配组中除点以外的任何字符。

我还建议使用 wordboundaries 来防止部分匹配,并可能添加一个 anchor ^ 来断言字符串的开头。

请注意,否定字符类 [^.]+ 也可以跨换行匹配。您可以使用 [^.\r\n]+

排除换行符
(?:[^.]+\.){11}([^.]+)\.([^.]+)\.(?!ok\b|cancelled\b)([^.]+)\.(?:[^.]+)

查看 regex demo .

关于正则表达式不匹配字符串中的确切单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67494081/

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