我正在尝试使用正则表达式搜索2个完整单词之间的内容。例如:
所有的女孩都去了商场 镇
在上面的字符串中,我想找到单词all
和to
之间的内容:
(?<=all).*?(?=to)/g
但是,它找到了两个匹配项,因为没有指示表达式仅在整个单词之间进行搜索:
" the girls went " //between all and to
" in " //between m(all) and (to)wn
我原本想在表达式中添加空格,如下所示:
(?<= all ).*?(?= to )/g
但是这不适用于上面的字符串,因为all
是句子的第一个单词。
如何编写表达式,以便它只找到2个完整单词之间的所有适当内容,而不会显示示例中所示的部分单词匹配?
答案 0 :(得分:2)
添加字边界
(?<=\ball\b).*?(?=\bto\b)
\ b是无宽度的单词边界。它匹配单词的开头或结尾(当然是由正则表达式定义)