Python正则表达式-开始和结束标记的问题

Python正则表达式-开始和结束标记的问题,python,regex,tags,Python,Regex,Tags,我有一个带有临时开始/结束标记的字符串 是这样的: “狗猫” 在这个字符串中,我想匹配'Dog'和'Cat',但由于我不擅长正则表达式,我只想到了以下几点: re.findall(r'<Hello>(.+)<Bye>', mystring) re.findall(r'(.+)',mystring) 我得到的唯一匹配项是: 'Dog<Bye> <Hello>Cat' “狗猫” 我想这很明显 有人有解决方案吗?您想使用非贪婪量词的*?版本,它将

我有一个带有临时开始/结束标记的字符串

是这样的:

“狗猫”

在这个字符串中,我想匹配
'Dog'
'Cat'
,但由于我不擅长正则表达式,我只想到了以下几点:

re.findall(r'<Hello>(.+)<Bye>', mystring)
re.findall(r'(.+)',mystring)
我得到的唯一匹配项是:

'Dog<Bye> <Hello>Cat'
“狗猫”
我想这很明显


有人有解决方案吗?

您想使用非贪婪量词的
*?
版本,它将尽可能少地匹配:

re.findall(r'<Hello>(.+?)<Bye>', mystring)
re.findall(r'(.+?)',mystring)
给出:


'Dog'
'Cat'

Gah,我关闭它是为了
*?
而不是
+?
。这基本上是一样的,但我需要更加小心我的新close as duplicate superpowers。@Veedrac,特别是因为OP似乎试图使用正则表达式解析某种XML。正确的答案是,不要使用“非贪婪量词”。谢谢,这很有效!我原以为我真的用了那个,但没有结果,但当我读了你的回复后再次尝试时,我意识到上次我只是打了个错字。@Yngve,很高兴我能帮上忙。如果足够的话,请考虑接受我的回答。谢谢是的,我试过了,但还得等几分钟