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

时间:2017-12-21 15:58:26

标签: regex

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

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

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

1 个答案:

答案 0 :(得分: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