假设我有 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+%
