Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Php 缺少某些字母的正则表达式_Php_Regex - Fatal编程技术网

Php 缺少某些字母的正则表达式

Php 缺少某些字母的正则表达式,php,regex,Php,Regex,有没有一种简单的方法可以忽略/漏掉某些字母。问题是找到一个5个字母长但不包含字母b、j、m或n的单词 我是否可以只指定我想要的字母,例如[a][c-I][k-l][o-2]?这看起来不是很干净,我仍然需要指定单词的长度为5个字母。所以我想我需要a/w和a{5},但不知道如何将它们结合起来。 谢谢。这将选择除bjmn以外的所有字符: [^bjmn]{5} 如果只需要小写字母,除了列出的字母以外: [c-ik-lo-za]{5} 如果不希望5个字母的单词成为较长单词的一部分,请添加单词边界检查:

有没有一种简单的方法可以忽略/漏掉某些字母。问题是找到一个5个字母长但不包含字母b、j、m或n的单词

我是否可以只指定我想要的字母,例如[a][c-I][k-l][o-2]?这看起来不是很干净,我仍然需要指定单词的长度为5个字母。所以我想我需要a/w和a{5},但不知道如何将它们结合起来。
谢谢。

这将选择除bjmn以外的所有字符:

[^bjmn]{5}
如果只需要小写字母,除了列出的字母以外:

[c-ik-lo-za]{5}
如果不希望5个字母的单词成为较长单词的一部分,请添加单词边界检查:

\b[c-ik-lo-za]{5}\b

不要使用
[a][c-i][k-l][o-2]
,而是尝试使用
[ac-ik-lo-z]{5}
,它应该检测由五个允许的字母组成的字符串


编辑:哎呀,你特别想要单词。只要测试两边的单词边界,然后:
\b[ac-ik-lo-z]{5}\b
-如果它是一行中的最后一个,后面有句点,后面有逗号,在括号中,等等,检查空格会使你错过匹配。

如果你也不想要大写的,请使用[^bjmn]或[^bbjjjmnn]

试试
\W[ac-ik-lo-z]{5}\W
(这与不包含您要查找的字符的五个字符组两侧的空格相匹配


如上所述,您可以将多个范围合并到一个列表中。

这需要一个单词有5个字母,但不包括任何
bjmn
。这可以通过使用[ac-i]等字母跨度来简化,但在尝试阅读时,这些字母跨度往往会有点混乱

\b([acdefghiklopqrstuvxyz]{5})\b


OP只需要
字母
除了
bjmn
,不需要我理解的任何字符。OP也只需要5个字母长的单词,这也会匹配像“Baduouwen”中的“Adou”这样的单词。OP只需要bjmn以外的字母,不需要我理解的任何字符。正如davide提到的,如果你关心大小写的话y、 您可能还想显式允许或拒绝大写版本,或者只是使用一个标志使正则表达式不区分大小写。将\W替换为\b以测试一般的单词边界。例如,如果单词是行中的最后一个,后面有一个句点或逗号,该怎么办?