正则表达式匹配 1 次或更少的字符串出现?

问题描述 投票:0回答:3

假设我想要一个正则表达式来匹配“Jump over thisbridge FOOL”以及“Jump over thisbridge”。如何使“FOOL”可选(出现 0 次或 1 次)?

regex
3个回答
27
投票

您可能想看看正则表达式教程

正则表达式的可选部分用问号表示:

Jump over this bridge( FOOL)?

如果您想匹配包含 FOOL 少于两次的

any
字符串,事情会变得有点复杂。那么你最好使用更先进的概念“负前瞻”: ^(?!(.*FOOL){2})

这颠覆了逻辑,并断言字符串 
doesn't

包含 2 个(或更多)FOOL 实例。

    


25
投票
?

标记来指定某个组的出现次数为可选(出现 0 次或 1 次),或者您也可以使用花括号,最小/最大值为 0 和 1,所以答案是:




Jump over this bridge( FOOL)?

Jump over this bridge( FOOL){0,1}



5
投票

Jump over this bridge( FOOL)?

您也可以放置一组字符串:

Jump over this bridge( FOOL| FOOB)?

请参阅此文档:
https://docs.python.org/3/library/re.html

https://www.w3schools.com/python/python_regex.asp

© www.soinside.com 2019 - 2024. All rights reserved.