gpt4 book ai didi

regex - 正则表达式否定先行断言

转载 作者:行者123 更新时间:2023-12-03 14:24:35 24 4
gpt4 key购买 nike

我想过滤一组键和值。所有键不是 aa 或 aaa 的键和值都应该匹配。目前既没有匹配到键,也没有排除键 aa 和 aaa。

正则表达式:(?!AA|AAA):.+?;

测试字符串:AA:1;AB:2;AC:3;AAA:4;AAB:5;AAC:6;

预期:AB:2;AC:3;AAB:5;AAC:6;

示例:https://regex101.com/r/AyW9PY/1/

我很感激任何帮助。

最佳答案

前瞻结构是零宽度的,它不消耗其模式匹配的文本。因此,您的 (?!AA|AAA) 只是说:如果右边有 AAAAA,则匹配失败。但是下一个要使用的字符是 :,因此先行总是返回 true,并且是多余的。

如果您的键由字符组成,您可以使用

\b(?!AAA?:)\w+:[^;]*;

参见 regex demo

详情

  • \b - 单词边界
  • (?!AAA?:) - 如果在当前位置的右侧紧跟两个或三个 A,则匹配失败的否定前瞻使用 :
  • \w+ - 1+ 个单词字符
  • : - 一个 :
  • [^;]* - ; 以外的 0+ 个字符
  • ; - ;

关于regex - 正则表达式否定先行断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53012485/

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