我使用了|成功地在字符串的一部分中包含可选术语但现在我需要在另一个字符串的任何一侧使用可选字符串,例如
(Near|In|Close to)(A|B|C|D|E)(Vicinity|Area)
我将接受 :
除此之外
((Near|In|Close to)(A|B|C|D|E))|((A|B|C|D|E)(Vicinity|Area))
我无法找到一种方法来使用可选标志来做一些看起来更像
的事情(近|中|靠近)(A | B | C | D | E))(附近地区)
它会接受任何一方
答案 0 :(得分:1)
您应该在捕获组中使用惰性,占有量词?+
:
(Near |In |Close to )?+(A|B|C|D|E)( Vicinity| Area)?+
我还必须在比赛中添加空格,因为数据中有空格。
您也可以这样写:
(Near |In |Close to )?+([ABCDE])( Vicinity| Area)?+
演示: http://regex101.com/r/qY1pI4
使用非捕获组演示: http://regex101.com/r/wV3fU1