我正在尝试构建一个正则表达式,以检查是否出现这种模式:“in”后面跟着1到3个单词(没有大写字母),后面跟着“北京”。有什么想法吗?
符合模式的例子:“在北京南部”“在北京的海岸”。
不符合模式的例子:“在本质上这是对北京的”(中间的单词太多)“在北京北部”(中间的单词有首字母大写)
发布于 2014-01-18 02:39:50
这应该可以做到:
in ([a-z]+ ){1,3}Beijing
发布于 2014-01-18 02:44:34
这应该匹配所有的示例(取决于您使用的语言/风格):
in ([a-z]+ ){1,3}Beijing见demo @ regex101。
注意:在in前面没有空格,因为在您的示例中没有。因此,如果必须有一个空格,你必须添加它。
解释:
in #matches "in "
([a-z]+ ) #matches lower-case characters until the next space
{1,3} #preceeding group is matched between 1 and 3 times
Beijing #matches "Beijing"发布于 2014-01-18 02:38:33
in \([a-z]\+ \)\{1,2\}Beijing反斜杠的需求将因环境而异,但这在vim中是可行的。
https://stackoverflow.com/questions/21199309
复制相似问题