在 Python 中多次出现的字符之间查找字符串
Find String between characters with multiple occurences in Python
所以我想找到一个介于2个字符之间的字符串。
我已经这样做了:
import re
str = "Please use <cmd> and after that <cmd2>!"
result = re.search('<(.*)>', str)
print(result.group(1)
这个问题是,如果我执行它,它会打印第一个 < 和最后一个 > 之间的文本,这不是我想要的。
cmd> and after that <cmd2
但我更想要的是分别得到第一次出现的“cmd”和第二次出现的“cmd2”。
感谢您的帮助!
您需要创建捕获组 non-greedy,并且要获取所有匹配项,您应该使用 re.findall()
而不是 re.search()
:
result = re.findall('<(.*?)>', str)
这输出:
['cmd', 'cmd2']
所以我想找到一个介于2个字符之间的字符串。 我已经这样做了:
import re
str = "Please use <cmd> and after that <cmd2>!"
result = re.search('<(.*)>', str)
print(result.group(1)
这个问题是,如果我执行它,它会打印第一个 < 和最后一个 > 之间的文本,这不是我想要的。
cmd> and after that <cmd2
但我更想要的是分别得到第一次出现的“cmd”和第二次出现的“cmd2”。 感谢您的帮助!
您需要创建捕获组 non-greedy,并且要获取所有匹配项,您应该使用 re.findall()
而不是 re.search()
:
result = re.findall('<(.*?)>', str)
这输出:
['cmd', 'cmd2']