正则表达式 - 2个全字之间的全局搜索

时间:2011-05-21 02:32:44

标签: regex match words

我正在尝试使用正则表达式搜索2个完整单词之间的内容。例如:

  所有的女孩都去了商场   镇

在上面的字符串中,我想找到单词allto之间的内容:

(?<=all).*?(?=to)/g

但是,它找到了两个匹配项,因为没有指示表达式仅在整个单词之间进行搜索:

" the girls went " //between all and to
" in " //between m(all) and (to)wn

我原本想在表达式中添加空格,如下所示:

(?<= all ).*?(?= to )/g

但是这不适用于上面的字符串,因为all是句子的第一个单词。

如何编写表达式,以便它只找到2个完整单词之间的所有适当内容,而不会显示示例中所示的部分单词匹配?

1 个答案:

答案 0 :(得分:2)

添加字边界

(?<=\ball\b).*?(?=\bto\b)

\ b是无宽度的单词边界。它匹配单词的开头或结尾(当然是由正则表达式定义)