文字列内の英数字(スペース付き)と英数字以外の文字をコンマで分割したい。
これでやってみました...
$str = "This is !@#$%^&";
preg_replace("/([a-z0-9_\s])([^a-z0-9_])/i", "$1, $2", $str);
しかし、私はこの結果を得ました...
これは、!@#$%^&
この結果を得るために検索パターンを修正するにはどうすればよいですか?
これは、!@#$%^&
ありがとう。
文字列内の英数字(スペース付き)と英数字以外の文字をコンマで分割したい。
これでやってみました...
$str = "This is !@#$%^&";
preg_replace("/([a-z0-9_\s])([^a-z0-9_])/i", "$1, $2", $str);
しかし、私はこの結果を得ました...
これは、!@#$%^&
この結果を得るために検索パターンを修正するにはどうすればよいですか?
これは、!@#$%^&
ありがとう。
次のように、最初のグループのすべてを2番目のグループで無効にする必要があります。
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