gpt4 book ai didi

python - 满足某个关键字后匹配值的正则表达式

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

我有一些用空格分隔的路径,但没有用\s/\s 分隔,即:空格、斜杠、空格

val1/val2 val4/val7 关键字/某个值 aaa/bbb ccc/ddd eee/fff

  • 第一个元素:val1/val2
  • 第二个元素:val4/val7
  • 第三个元素:关键字/某个值
  • 第四个元素:aaa/bbb
  • 第 5 个元素:ccc/ddd
  • 第 6 个元素:eee/fff

当我找到具有某些值的关键字时:

(keyword / [^/\s]*)

上述匹配后唯一可接受的值可以是 aaa/bbb 和 ccc/ddd,无论顺序,无论重复。

例如,我应该匹配

  1. val1/val2 val4/val7 关键字/某个值 aaa/bbb ccc/ddd
  2. val1/val2 val4/val7 关键字/某个值 aaa/bbb
  3. val1/val2 val4/val7 关键字/某个值 ccc/ddd
  4. val1/val2 val4/val7 关键字/某些值 ccc/ddd aaa/bbb
  5. val1/val2 val4/val7 关键字/某个值 ccc/ddd aaa/bbb ccc/ddd

任何其他组合都应返回不匹配,例如:当关键字/某个值后面有一些额外的“元素”时

  1. val1/val2 val4/val7 关键字/某个值 aaa/bbb ccc/ddd eee/fff
  2. val1/val2 val4/val7 关键字/某个值 eee/fff ccc/ddd
  3. val1/val2 val4/val7 关键字/某个值 aaa/bbb zzz/yyy ccc/ddd

(...)

我应该变得不匹配。

是否可以用正则表达式来实现?我试图用正则表达式解决它,但我卡住了。

最佳答案

让我们尝试以下操作 Regex :

keyword \/ \w+ ((?:aaa \/ bbb|ccc \/ ddd)(?: |$))+$

地点:

  • keyword 是您的固定关键字
  • aaabbbcccddd 是按字面匹配的
  • aaa\/bbb 是第一个允许的对,ccc\/ddd 是第二个
  • (?: |$) 检查一对后面是否有空格或行尾 $

我必须强调,强烈建议使用编程语言进行提取。您应该拆分字符串并检查分区。

关于python - 满足某个关键字后匹配值的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53420079/

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