正则表达式多余空格怎么去掉?
echo $keyword = "上海|北京!成都 深圳";
echo "<br />";
$old1 = array("/(\s*)(\s)(\s*)/","/(\s*)(\|)(\s*)/","/(\s*)(!)(\s*)/");
$new1 = array('" "','"|"','" "!');
echo $keyword3="\"".preg_replace($old1,$new1,$keyword)."\"";
//输出:"上海"|"北京" "!成都" "深圳"
echo $keyword = "上海 | 北京 !成都 深圳";
echo "<br />";
$old1 = array("/(\s*)(\s)(\s*)/","/(\s*)(\|)(\s*)/","/(\s*)(!)(\s*)/");
$new1 = array('" "','"|"','" "!');
echo $keyword3="\"".preg_replace($old1,$new1,$keyword)."\"";
//输出:"上海" ""|"" "北京" "" "!成都" "深圳"
上面两种情况:第一种是显示是对的,第二种给各符号间加了空格输去就错误了。请问多余的空格怎么屏蔽掉? 正则表达式
[解决办法]
没看懂你的需求,我做的话用\S提取就足够了
[解决办法]
下面的做法能满足你的需要吗?
echo $keyword = "上海
[解决办法]
北京!成都 深圳";
echo "<br />";
$old1 = array("/(\s*)(\s)(\s*)/","/(\s*)(\
[解决办法]
)(\s*)/","/(\s*)(!)(\s*)/");
$new1 = array('" "','"
[解决办法]
"','" "!');
echo $keyword3="\"".preg_replace($old1,$new1,$keyword)."\"";
//输出:"上海"
[解决办法]
"北京" "!成都" "深圳"
echo $keyword = "上海
[解决办法]
北京 !成都 深圳";
$keyword = str_replace(" ","",$keyword);
echo "<br />";
$old1 = array("/(\s*)(\s)(\s*)/","/(\s*)(\
[解决办法]
)(\s*)/","/(\s*)(!)(\s*)/");
$new1 = array('" "','"
[解决办法]
"','" "!');
echo $keyword3="\"".preg_replace($old1,$new1,$keyword)."\"";
//输出:"上海" ""
[解决办法]
"" "北京" "" "!成都" "深圳"
[解决办法]
这样写
$keyword = "上海
[解决办法]
北京!成都 深圳"; //输出:"上海"
[解决办法]
"北京" "!成都" "深圳"
$keyword = "上海
[解决办法]
北京 !成都 深圳";//输出:"上海"
[解决办法]
"北京" "!成都" "深圳"
echo "<br />";
$old1 = array("/!?[^\s!
[解决办法]
]+/", "/\s+/", "/\s*\
[解决办法]
\s*/", '/""/');
$new1 = array('"$0"', ' ', '
[解决办法]
', '" "');
echo $keyword3 = preg_replace($old1,$new1,$keyword);
[解决办法]
参考一下
$old1 = array("/(\s*)(\
[解决办法]
)(\s*)/","/(\s*)(!)(\s*)/","/(\s*)(\s)(\s*)(?!\")/");
$new1 = array('"
[解决办法]
"','" "!','" "');[解决办法]
echo $keyword = "上海
[解决办法]
北京 !成都 深圳";
$keyword = str_replace(" ","",$keyword);
echo "<br />";
$old1 = array("/(\s*)(\
[解决办法]
)(\s*)/","/(\s*)(!)(\s*)/","/(\s*?)(\s)(\s*?)/");
$new1 = array('"
[解决办法]
"','" "!','" "');
echo $keyword3="\"".preg_replace($old1,$new1,$keyword)."\"";
//输出:"上海" ""
[解决办法]
"" "北京" "" "!成都" "深圳"
试试