gpt4 book ai didi

Python - 使用 RegEx 从字符串中提取模式

转载 作者:太空狗 更新时间:2023-10-30 00:23:27 24 4
gpt4 key购买 nike

我在变量 a 中有一个字符串,如下所示:

a = 'foo(123456) together with foo(2468)'

我想使用“re”从字符串中提取foo(123456)foo(2468)

我有两个问题:

  1. 要使用的正确正则表达式是什么? foo(.\*) 似乎不起作用,因为它将 123456)foo(2468 一起视为 .*
  2. 如何提取两个 foo?

最佳答案

import re
pattern = re.compile(r'foo\(.*?\)')
test_str = 'foo(123456) together with foo(2468)'

for match in re.findall(pattern, test_str):
print(match)

两件事:

  1. .*? 是惰性量词。它的行为与贪婪量词 (.*) 相同,只是它尝试匹配字符串中从左到右的最少 可能字符数。请注意,如果您想匹配括号中的至少一个字符,您需要使用 .+?

  2. 使用 \(\) 而不是 () 因为通常使用括号在正则表达式中表示捕获组,所以如果你想按字面匹配括号,你必须在它们之前使用转义字符,即反斜杠。

关于Python - 使用 RegEx 从字符串中提取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29403784/

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