gpt4 book ai didi

python - 匹配除特定字符串以外的所有内容

转载 作者:行者123 更新时间:2023-11-28 22:22:38 25 4
gpt4 key购买 nike

我看过很多标题相似的帖子,但我没有找到任何适用于 python 甚至这个网站的帖子:https://regex101.com

如何匹配特定文本以外的所有内容?

我的文字:

1234_This is a text Word AB

Protocol Address ping
Internet 1.1.1.1 -
Internet 1.1.1.2 25
Internet 1.1.1.3 8
Internet 1.1.1.4 -

1234_This is a text Word BCD
Protocol Address ping
Internet 2.2.2.1 10
Internet 2.2.2.2 -

我想匹配 Word\w+ 然后直到下一个 1234。所以结果应该是(返回 () 中标记的组):

(1234_This is a text (Word AB))(

Protocol Address ping
Internet 1.1.1.1 -
Internet 1.1.1.2 25
Internet 1.1.1.3 8
Internet 1.1.1.4 -

)(1234_This is a text (Word BCD)(
Protocol Address ping
Internet 2.2.2.1 10
Internet 2.2.2.2 - )

第一部分很简单:matches = re.findall(r'1234_This is a text (Word\w+)', var)但是下一部分我无法实现。我试过负面前瞻:^(?!1234) 但它不再匹配任何内容...

最佳答案

代码

See regex in use here

(1234[\w ]+(Word \w+))((?:(?!1234)[\s\S])*)

使用 s 修饰符,您可以使用以下内容。
See regex in use here

(1234[\w ]+(Word \w+))((?:(?!1234).)*)

解释

  • (1234[\w ]+(Word\w+)) 将以下内容捕获到捕获组 1
    • 1234 字面匹配
    • [\w ]+ 匹配一个或多个单词字符或空格
    • (Word\w+) 将以下内容捕获到捕获组 2
      • Word 字面匹配(注意尾随空格)
      • \w+ 匹配任何单词字符一次或多次
  • ((?:(?!1234)[\s\S])*) 将以下内容捕获到捕获组 2
    • (?:(?!1234)[\s\S])* 匹配以下任意次数 ( tempered greedy token )
      • (?!1234) 否定前瞻确保后面的内容不匹配
      • [\s\S])* 匹配任何字符任意次数

关于python - 匹配除特定字符串以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47577260/

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