Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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/5/date/2.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_Validation - Fatal编程技术网

Php 为什么这个正则表达式捕获空间?

Php 为什么这个正则表达式捕获空间?,php,regex,validation,Php,Regex,Validation,我目前正在尝试在提交注册表格时验证网站的用户名 用户名的正则表达式是([^a-zA-Z0-9}{5,25})。我在PHP中调用用户名preg_match,并使用这个正则表达式 由于某种原因,空间通过时未被发现。我尝试了如下的消极前瞻:(?![a-zA-Z0-9!]{5,25}),但仍然没有进行前瞻 有人有什么想法吗?A[^…]是一个匹配除类中定义的字符以外的任何字符的。因此,[^a-zA-Z0-9\]匹配字母数字或\字符以外的任何字符 您要使用的是一个正字符类,[a-zA-Z0-9\或\w(没有

我目前正在尝试在提交注册表格时验证网站的用户名

用户名的正则表达式是
([^a-zA-Z0-9}{5,25})
。我在PHP中调用用户名
preg_match
,并使用这个正则表达式

由于某种原因,空间通过时未被发现。我尝试了如下的消极前瞻:
(?![a-zA-Z0-9!]{5,25})
,但仍然没有进行前瞻


有人有什么想法吗?

A
[^…]
是一个匹配除类中定义的字符以外的任何字符的。因此,
[^a-zA-Z0-9\]
匹配字母数字或
\
字符以外的任何字符

您要使用的是一个正字符类,
[a-zA-Z0-9\
\w
(没有
/u
修饰符,
\w
匹配相同的字符)以及锚定符

因此,您可以使用

preg_match('~^\w{5,25}$~', $s)


\z
锚点匹配字符串的最末端,而
$
(不带
/D
修饰符)也可以在尾随换行符(LF)字符之前匹配。

因此用户名中不应包含
a-zA-Z0-9
,请检查
^
的位置。验证您的正则表达式您的意思可能是:
^[a-zA-Z0-9}{5,25}$
preg_match('~\A\w{5,25}\z~', $s)