同一个单词中字母对的正则表达式

时间:2016-12-09 20:38:46

标签: regex grep

我需要找到至少两次具有相同字母对的所有单词(单词是空格之间的所有非空格字符,即chochol,9933499)。我想出了这个正则表达式然而它不起作用,我无法弄清楚如何正确地写它。

[ ]\S*(\S\S)\S*\1\S*[ ]

1 个答案:

答案 0 :(得分:0)

模式中的[ ]是多余的,甚至是有害的,因为它们会阻止匹配重叠(后续,1个空格后)子串。

您需要使用

grep -oP '\S*(\S\S)\S*\1\S*'

请参阅online demo

如果你只需要匹配"单词"使用两个重复相同的连续字母,将(\S\S)替换为([A-Za-z]{2})甚至\p{L}{2}