我想通过逗号在一个字符串分割的字母数字 (含空格)和非字母数字 。
我试着用这个...
$str = "This is !@#$%^&";
preg_replace("/([a-z0-9_\s])([^a-z0-9_])/i", "$1, $2", $str);
但我得到了这样的结果?
这就是!@#$%^&
如何解决搜索pattarn得到这个结果呢?
这就是!@#$%^&
谢谢。
我想通过逗号在一个字符串分割的字母数字 (含空格)和非字母数字 。
我试着用这个...
$str = "This is !@#$%^&";
preg_replace("/([a-z0-9_\s])([^a-z0-9_])/i", "$1, $2", $str);
但我得到了这样的结果?
这就是!@#$%^&
如何解决搜索pattarn得到这个结果呢?
这就是!@#$%^&
谢谢。
你应该在第一组否定家居第二,就像这样:
preg_replace("/([a-z0-9_\s])([^a-z0-9_\s])/i", "$1, $2", $str);
否则,它会在空间划分为好。
你可能将不得不为此在多次反复。 尝试这个:
$preg = array( "/([\w\s]+)/i", "/([\W\s]+)/i" ):
$replace = array( "\\1, ", "\\1 " );
$result = rtrim( preg_replace( $preg, $replace, $input ) ); // rtrim to get rid of any excess spaces