排除Python

时间:2015-10-26 15:40:00

标签: python regex

我有这种形式的表达......

@@name<·parameters·>

...我想要一个与小组nameparameters匹配的正则表达式。由于我有name的封闭(和小)值组,我更喜欢使用for循环来尝试所有少数值,但parameters可以是任何东西......除了{{1 }和,它们是打开和关闭参数集的序列。

我找到了this question,我试过了......

·>

......但我无法让它发挥作用。我认为原因在于排除的表达式在位置和重复次数中都是已知的(1)但在我的情况下,我希望将这两个序列中的任何一个排除在未知长度的字符串中。

你知道怎么做吗?谢谢。

2 个答案:

答案 0 :(得分:1)

你必须是正则表达式,

@@(name)<·((?:(?!<·|·>).)*)·>

否定前瞻方法。只需了解此部分(?!<·|·>).只匹配任何字符(),但不能理解·>(?:(?!<·|·>).)* 0( star) )或更多次。

非贪婪的方法。

@@(name)<·(.*?)·>

DEMO

答案 1 :(得分:0)

您还可以使用以下正则表达式:

@@([^<]*)<\·([^\·]+)\·>