27

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

4

3 回答 3

20

您可以使用?标记将组的出现指定为可选(出现 0 或 1 次),也可以使用带有最小值/最大值为 0 和 1 的花括号,因此答案是:

Jump over this bridge( FOOL)?

或者

Jump over this bridge( FOOL){0,1}
于 2016-05-05T22:59:25.660 回答
19

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

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

Jump over this bridge( FOOL)?

如果您想匹配包含少于两次的任何字符串,事情会变得有点复杂。FOOL那么你最好使用更高级的负前瞻概念:

^(?!(.*FOOL){2})

这改变了逻辑并断言字符串包含 2 个(或更多)实例FOOL

于 2012-11-13T01:10:12.653 回答
2

尝试这样做:

Jump over this bridge( FOOL)?

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

Jump over this bridge( FOOL| FOOB)?
于 2012-11-13T01:10:05.653 回答