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