web-dev-qa-db-ja.com

PHPで文字列を複数の区切り文字で分割する方法は?

"something here ; and there, oh,that's all!"

;,で分割したい

したがって、処理後は次のようになります。

something here

and there

oh

that's all!
25
omg
<?php

$pattern = '/[;,]/';

$string = "something here ; and there, oh,that's all!";

echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';

更新された質問に対する更新された回答:

<?php

$pattern = '/[\x{ff0c},]/u';

//$string = "something here ; and there, oh,that's all!";
$string = 'hei,nihao,a ';


echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';
38
meder omuraliev
$result_array = preg_split( "/[;,]/", $starting_string );
13
Devin Ceartas

Split()PHP関数を使用すると、区切り文字を正規表現にすることができます。残念ながら非推奨であり、PHP7では削除されます!

preg_split() 関数は問題なく、配列を返します。

$results = preg_split('/[;,]/', $string);

あなたにとって役立つかもしれないいくつかの追加のオプションのパラメーターがあります。

編集した例の最初の区切り文字は、実際には2バイトのUnicode文字ですか?

おそらくpreg_slit()関数は区切り文字を3文字として扱い、Unicode(中国語?) '文字'の文字の間で分割しています。

2
pavium

Devin's または Meder's メソッドを使用して、配列に値を取得できます。

必要な出力を取得するには、おそらくこれを行うことができます

echo implode("\n", $resultingArray);

または<br />必要なHTMLの場合。

0
alex