我试图从字符串中找到所有匹配的模式,但不包含与子字符串相同的模式。我需要做的是,找到与<。匹配的模式:。> ,'之后没有任何嵌套标签(相同的模式)。'。
这是输入字符串
<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)
这传递了第一个示例输入,但在第二个示例中失败。 任何建议将不胜感激:)
答案 0 :(得分:1)
如果您想要匹配:<First tag:Some text<Second tagText for second tag>
您可以尝试:\<[^\<.*:\>]+:[^.*:\>]+\>
。
它将填满这两个例子。
请参阅: https://regex101.com/r/nU6nO8/4 细节。