我想要在字符串中的任何地方匹配字母的正则表达式

问题描述 投票:-3回答:1

我寻找匹配的正则表达式:nep,enp,pen和这些字母[p,e,n]的长度为3的所有组合。忽略ben,pen,enp444,ven等。

p | e | n对我没有帮助,因为我可以使用长度为20的单词,这种方法对我不好。

应该匹配每个字母,所以小便,nee不起作用。

regex
1个回答
1
投票

这里是!

((?:([nep])(?!\2)([nep])(?!\3))(?!\2)[nep])

基本上:

([nep])(?!\2)搜索nep后面没有相同的字母

([nep])(?!\3)和以前一样,这样我们的第一个字母与第二个字母不同,第二个字母与第三个字母不同......但是这允许类似于pep ...所以我们添加一个组说第三个字母必须与第一个(?:([nep])(?!\2)([nep])(?!\3))(?!\2)不同,我们添加最后一个字母[nep]和一个匹配组围绕所有

你可以在这里看到这个:https://regex101.com/r/uoqCbG/2

© www.soinside.com 2019 - 2024. All rights reserved.