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

时间:2012-11-13 01:08:59

标签: regex

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

3 个答案:

答案 0 :(得分:15)

You might want to have a look at a regex tutorial

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

Jump over this bridge( FOOL)?

如果你想匹配包含FOOL不到两次的任何字符串,事情会变得复杂一些。那么你最好使用更高级的negative lookahead概念:

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

这会打开逻辑并声明字符串包含FOOL的2个(或更多)实例。

答案 1 :(得分:15)

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

Jump over this bridge( FOOL)?

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

答案 2 :(得分:1)

尝试这样做:

Jump over this bridge( FOOL)?

你也可以放一组字符串:

Jump over this bridge( FOOL| FOOB)?