正则表达式:是否可以成对地采用文本中的所有单词?

时间:2013-02-20 04:32:01

标签: regex pcre

我正在使用PCRE查找短语中的所有单词对,例如。短语“快速的棕色狐狸跳过懒狗。”应该产生

The quick
quick brown
brown fox
fox jumped
jumped over
...
...
lazy dog

我正在使用FindAndConsume()函数,它会消耗两个单词,而我只得到一半的结果!

The quick
brown fox
jumped over
...
...
the lazy

所以我试图找出是否有办法检索所有单词对。

1 个答案:

答案 0 :(得分:1)

正则表达式找不到重叠匹配。为了做你想做的事情,我建议你首先将文本分成单词,然后使用普通循环来提取与邻居的项目。

或者,您可以将正则表达式中的第二个单词放在前瞻中,然后捕获它:(\w+)(?=\W+(\w+)\b) - 但要确保获得捕获而不是匹配(因为匹配仍然只包含第一个字)。