如何将连续的多个空格替换为单个空格,并且不允许字符串开头和结尾的空格?
这是我的正则表达式
preg_match("/^([-a-z_ ])+$/i", $str)
答案 0 :(得分:0)
这里没什么难的:
if (!preg_match('~\A\s|\s\z~', $str)) {
$str = preg_replace('~\s\s+~', ' ', $str);
} // else deny
如果要同时检查字符串是否只包含ascii字母,下划线,连字符或至少包含一个字符的空格(如示例所示),则可以将第一个模式更改为:
if (!preg_match('~\A(?:\s|\z)|[^-a-z_\s]|\s\z~i', $str)) {
答案 1 :(得分:-1)
我已经弄清楚了。它的
^([A-Za-z_\-]+[ {1})]?[A-Za-z_\-]*)+$