gpt4 book ai didi

Python正则表达式,如何匹配出现n次的字符串

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

我想匹配包含单词 100.00% 3 次的行。

例如

some string 100.00% foo 100.00% 100.00%
some string 99.91% foo 100.00% 99.91%
some string 100.00%100.00%100.00%

因此第 1 行和第 3 行应该全部匹配。

但是,我的以下正则表达式似乎仅匹配 100.00% 重复 3 次的情况。 (仅匹配第3行)

re.search(r"([1][0][0]\.[0][0][%]){3}",string)

我想知道我应该如何匹配第 1 行?

谢谢大家!

最佳答案

Halemur Ali 的答案比这个答案清晰得多,我只是为了完整而留下这个答案。

符号{3}只是一个快捷方式,您始终可以通过扩展重复序列来替换它。要匹配序列 100.00% 恰好出现 3 次的行,您可以使用:

"^(?:(?!100\.00%).)*(?:100\.00%(?:(?!100\.00%).)*){3}$"

这使用 negative-lookaheads .

可以这样读:

  • ^ 行首
  • (?:(?!100\.00%).)* 任何字符(零个或多个),直到 100.00% 序列
  • (?:100\.00% 100.00% 序列
  • (?!100\.00%).)* 后跟任何字符(零个或多个),直到 100.00% 序列
  • {3} 重复 3 次
  • $ 行尾

考虑查看 re 的 python 文档模块。

注意:匹配单个字符不需要括号。

关于Python正则表达式,如何匹配出现n次的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507957/

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