我正在使用PCRE查找短语中的所有单词对,例如。短语“快速的棕色狐狸跳过懒狗。”应该产生
The quick
quick brown
brown fox
fox jumped
jumped over
...
...
lazy dog
我正在使用FindAndConsume()函数,它会消耗两个单词,而我只得到一半的结果!
The quick
brown fox
jumped over
...
...
the lazy
所以我试图找出是否有办法检索所有单词对。
答案 0 :(得分:1)
正则表达式找不到重叠匹配。为了做你想做的事情,我建议你首先将文本分成单词,然后使用普通循环来提取与邻居的项目。
或者,您可以将正则表达式中的第二个单词放在前瞻中,然后捕获它:(\w+)(?=\W+(\w+)\b)
- 但要确保获得捕获而不是匹配(因为匹配仍然只包含第一个字)。