假设我想要一个正则表达式匹配“跳过这个桥FOOL”以及“跳过这个桥”。如何使“FOOL”可选(0或1次出现)?
答案 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)?