正则表达式找到由一个或两个单词分隔的2个单词

时间:2014-01-18 02:33:02

标签: regex

我正在尝试构建一个正则表达式来检查是否存在此模式:“in”后跟1到3个单词(没有大写字母),后跟“Beijing”。有什么想法吗?

与模式匹配的示例: “在北京南部” “在北京海岸”

与模式不匹配的示例: “实质上这对北京来说是真的”(两者之间的话太多了) “在北京北部”(中间的字首字母大写)

4 个答案:

答案 0 :(得分:0)

in \([a-z]\+ \)\{1,2\}Beijing

对反斜杠的需求会因环境而异,但这应该在vim中有效。

答案 1 :(得分:0)

您没有指定语言,因此可能无效。

in +([a-z]+ +){1,3}Beijing

工作示例:http://regex101.com/r/qX4iA5

答案 2 :(得分:0)

应该这样做:

in ([a-z]+ ){1,3}Beijing

答案 3 :(得分:0)

这应该与您的所有示例匹配(取决于您使用的语言/风格):

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"