Skip to main content
 首页 » 编程设计

python之在 Python 中排除正则表达式中的字符序列(不仅是单个字符)

2024年10月24日29TianFang

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

@@name<·parameters·> 

...我想要一个匹配组 name 的正则表达式和 parameters .因为我有一组封闭的(和小的)值 name我更喜欢使用 for 循环来尝试所有的几个值,但是 parameters可以是任何东西……除了<·之外的任何东西和 ·> , 至极是打开和关闭参数集的顺序。

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

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

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

你知道怎么做吗?谢谢。

请您参考如下方法:

你的正则表达式必须是,

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

负先行法。只看懂这部分(?!<·|·>).仅匹配任何字符(点)但不匹配 <·或 ·> , (?:(?!<·|·>).)*零次(星号)或更多次。

或

非贪心法。

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

DEMO