dav*_*dav 10 php regex preg-match
我想在php中编写一个正则表达式,只匹配任何英文字符,空格,数字和所有特殊字符.
从这个问题正则 表达式任何ascii字符
我试过这个
preg_match("/[\x00-\x7F]+/", $str);
Run Code Online (Sandbox Code Playgroud)
但它会发出警告
No ending delimiter '/' found
Run Code Online (Sandbox Code Playgroud)
那么,如何在php中编写这个正则表达式.
替代方案就像[az\d\s]一样,并且一个接一个地考虑所有特殊字符,但是有没有办法做得更简单?
谢谢
zx8*_*x81 20
有许多复杂的解决方案,但我建议这个简单的正则表达式:
^[ -~]+$
Run Code Online (Sandbox Code Playgroud)
它允许ASCII表中的所有可打印字符.
在PHP中:
$regex = '%^[ -~]+$%';
if (preg_match($regex, $yourstring, $m)) {
$thematch = $m[0];
}
else { // no match...
}
Run Code Online (Sandbox Code Playgroud)
说明
^锚断言,我们是在字符串的开头[ -~]匹配空格和波浪号之间的所有字符(ASCII表中的所有可打印字符)+量词的意思是"匹配的一个或多个的那些"$锚断言,我们是在字符串的结束