Regex 我希望正则表达式匹配字符串中任意位置的字母
我寻找符合以下条件的正则表达式: nep、enp、pen和所有长度为3的字母[p、e、n]的组合。 忽略ben、pencil、enp444、ven等。 p | e | n对我没有帮助,因为我可以有长度为20的单词,而这种方法对我不好 应该匹配每个字母,这样pee,nee就不起作用了。在这里Regex 我希望正则表达式匹配字符串中任意位置的字母,regex,Regex,我寻找符合以下条件的正则表达式: nep、enp、pen和所有长度为3的字母[p、e、n]的组合。 忽略ben、pencil、enp444、ven等。 p | e | n对我没有帮助,因为我可以有长度为20的单词,而这种方法对我不好 应该匹配每个字母,这样pee,nee就不起作用了。在这里 ((?:([nep])(?!\2)([nep])(?!\3))(?!\2[nep]) 基本上: ([nep])(?!\2)搜索n或e或p后面不跟同一个字母 ([nep])(?!\3)像以前一样,这样我们就有了
((?:([nep])(?!\2)([nep])(?!\3))(?!\2[nep])
基本上:
([nep])(?!\2)
搜索n
或e
或p
后面不跟同一个字母
([nep])(?!\3)
像以前一样,这样我们就有了第一个字母与第二个不同,第二个字母与第三个不同。。。但这允许类似于pep
。。。因此,我们添加了一个组,说明第三个字母必须不同于第一个(?:([nep])(?!\2)([nep])(?!\3))(?!\2)
,然后添加最后一个字母[nep]和围绕所有字母的匹配组
您可以在这里看到这一点:this?@ctwheels也将与
ppp
…@deceze完全匹配。OP指定所有combinations@decezeOP确实说过“所有字母的组合”p,e,n”,长度为3。“ppp”,对我来说,满足了这一点。这有点模糊。通俗地说,我会理解为“将这三个字母按任意顺序排列”,而不是“作为这一集合的子集的任何字符串”。由OP来澄清…