正则表达式findall模式不包含另一种模式 - Python

时间:2016-07-06 04:36:52

标签: regex string python-3.x match findall

我试图从字符串中找到所有匹配的模式,但不包含与子字符串相同的模式。我需要做的是,找到与<。匹配的模式:。> ,'之后没有任何嵌套标签(相同的模式)。'。

这是输入字符串

<First tag:Some text<Second tag:Text for second tag>Some other tag<Third tag:Text for third tag>Remaining text

预期产出,

['<Second tag:Text for second tag>','<Third tag:Text for third tag>']

还有一个输入字符串,

<First tag:Some text<Second tagText for second tag>Some other tag<Third tag:Text for third tag>Remaining text

输出,

['<First tag:Some text<Second tagText for second tag>','<Third tag:Text for third tag>']

我试过这种方式

re.findall('\<[^\<.*:.*\>]+:[^\<.*:.*\>]+\>', input_string)

这传递了第一个示例输入,但在第二个示例中失败。 任何建议将不胜感激:)

1 个答案:

答案 0 :(得分:1)

如果您想要匹配:<First tag:Some text<Second tagText for second tag>

您可以尝试:\<[^\<.*:\>]+:[^.*:\>]+\>。 它将填满这两个例子。

请参阅: https://regex101.com/r/nU6nO8/4 细节。