Skip to main content
 首页 » 编程设计

python之正则表达式非贪婪或

2024年11月01日29arxive

假设我有 3 个正则表达式 A、B 和 C。

我需要同时或分别匹配 A 和 B,但始终至少匹配一个。 C 是可选的。

到目前为止,我的组合正则表达式是 A?B?C,但如果 A 和 B 不匹配,它仍然有效。 我试过 A|BC 但是,如果 A 匹配,则不会评估 B,我需要对其进行评估。

(?P<param1>\d+)?(?P<param2>+\d+)?(?P<param3>\w+) 

有什么想法吗?

请您参考如下方法:

使用正则表达式模式

(?:A(?:B)?|B)(?:C)? 

更新:

如果您只需要使用A、B 和C 一次,请使用

((?:A)?(?:B)?)(?!\1{100})(?:C)? 

这不是 100% 正确,但应该涵盖所有可能性的 99.99+%