Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 我希望正则表达式匹配字符串中任意位置的字母_Regex - Fatal编程技术网

Regex 我希望正则表达式匹配字符串中任意位置的字母

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、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)
像以前一样,这样我们就有了第一个字母与第二个不同,第二个字母与第三个不同。。。但这允许类似于
pep
。。。因此,我们添加了一个组,说明第三个字母必须不同于第一个
(?:([nep])(?!\2)([nep])(?!\3))(?!\2)
,然后添加最后一个字母[nep]和围绕所有字母的匹配组


您可以在这里看到这一点:

this?@ctwheels也将与
ppp
…@deceze完全匹配。OP指定所有combinations@decezeOP确实说过“所有字母的组合”p,e,n”,长度为3。“ppp”,对我来说,满足了这一点。这有点模糊。通俗地说,我会理解为“将这三个字母按任意顺序排列”,而不是“作为这一集合的子集的任何字符串”。由OP来澄清…