在 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']