正则表达式排除双字符

Bay*_*ayu 4 regex

我需要有一个正则表达式来查找一个字符,该字符后面没有跟在同一字符之后。意思是排除相同字符甚至双倍的字符。

例如,当我需要'e'从string:中查找字符时"need only single characteeer",这意味着'e'在每个单词上都可以找到细分,如下所示:

"need" >不匹配,因为它有两倍 'e'

"only" >不匹配,因为否 'e'

"single" >匹配,因为只有一个 'e'

"characteeer" >不匹配,因为有多个 'e'

不确定是否可行。任何答复或评论将不胜感激。提前致谢。

更新

也许我上面的问题仍然模棱两可。实际上,我只需要查找'e'字符而不是单词。我将用双字符替换它。因此,已经具有双重字符的将不会被替换。

其主要目的是要取代'e'同'ee'为例子。但是已经'ee'或'eee'已经或者甚至更多的那个'e'将不会被触及。

Nah*_*eul 8

更新:

(?<!e)e(?!e)
Run Code Online (Sandbox Code Playgroud)

将e与否定匹配,以防止出现e后面的情况,以及负向的预见情况阻止后面的e。

可以在这里检查

\b(([A-Za-z])(?!\2))+\b
Run Code Online (Sandbox Code Playgroud)

将匹配一个单词(A-Za-Z之间的一个或多个字符的序列),并具有负的前瞻性,以防止后面的字符与最后一个匹配项,组2相同或使用非捕获组。

/\b(?:([A-Za-z])(?!\1))+\b/g
Run Code Online (Sandbox Code Playgroud)

但是only将匹配,因为它不包含重复的字符。匹配包含e但不包含的单词ee

/(?<![a-z])(?=[a-z]*e)(?![a-z]*ee)[a-z]+/gi
Run Code Online (Sandbox Code Playgroud)