gpt4 book ai didi

python - "match anything until a specific character, then work your way backwards"怎么说?

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:40 27 4
gpt4 key购买 nike

我经常遇到这样的模式,其中有趣的部分由特定字符分隔,其余部分无关紧要。一个典型的例子:

/dev/sda1       472437724  231650856 216764652  52% /

我想通过说 “匹配任何内容,然后当您到达 %(在该行中是唯一的)时,请参阅前面的内容以提取匹配项”

我试过 code this.*(\d*)%.* 但组不匹配:

  • .* 匹配任意次数
  • % ... 直到你到达乱码 %(\d 也与 匹配。* 但我的理解是,一旦 % 匹配,正则表达式引擎将向后工作,因为它现在有一个“ anchor ”,可以在其上分析之前的内容——请指出这个推理是否不正确,谢谢)
  • (\d*) ... 现在在 % 之前你有一个 (\d*) 来匹配和分组
  • .* ...其余的都不重要(匹配所有内容)

最佳答案

您的正则表达式不起作用,因为 . 匹配太多,而组匹配太少。由于 * 量词,组 \d* 基本上可以匹配 nothing,而 . 匹配所有内容。

您对 .* 的描述有些不正确。它实际上匹配所有内容直到结束,然后向后移动直到它之后的内容 ((\d*).*) 匹配。有关详细信息,请参阅 here .

事实上,我认为您的文字可以简单地通过以下方式匹配:

(\d{1,3})%

并获得第 1 组。

“继续寻找直到找到...”的逻辑有点融入了正则表达式引擎,所以你不需要明确地说 .* 除非你想在匹配中使用它.在这种情况下,您只需要 % 之前的数字对吗?

关于python - "match anything until a specific character, then work your way backwards"怎么说?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57328413/

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