带有可选前缀或后缀的正则表达式

时间:2014-05-12 23:23:52

标签: regex

我使用了|成功地在字符串的一部分中包含可选术语但现在我需要在另一个字符串的任何一侧使用可选字符串,例如

(Near|In|Close to)(A|B|C|D|E)(Vicinity|Area)

我将接受

  • 在A附近 或
  • A Area

除此之外

((Near|In|Close to)(A|B|C|D|E))|((A|B|C|D|E)(Vicinity|Area))

我无法找到一种方法来使用可选标志来做一些看起来更像

的事情

(近|中|靠近)(A | B | C | D | E))(附近地区)

它会接受任何一方

1 个答案:

答案 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