• 締切済み

文字列の中の2バイト文字と英数字を分割

$str = "ブックbook01本comicこみっく123"; のような2バイト文字と英数字が混在している文字列があります。 これを2バイト文字と英数字で分割して 1. 配列に入れる方法   →Array('ブック', 'book01', '本' 'comic', 'コミック', '123') 2. 間に空白を入れる方法   →"ブック book01 本 comic こみっく 123" の両方の処理の仕方を教えて下さい。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ぱっと思いつく限り正規表現で処理してみては? <?PHP $pattern="/[0-9a-z]+|[^0-9a-z]+/i"; $str = "ブックbook01本comicこみっく123"; preg_match_all($pattern,$str,$matches); print_r($matches[0]); $str=implode($matches[0]," "); print $str; ?> ちなみに >2バイト文字と英数字 2バイト文字ではなくマルチバイト文字という認識の方がよいかと また英数字とありますがシングルバイトの英数字以外の記号はどちらに振ればよいのでしょう?

sss1563
質問者

お礼

ありがとうございます! 正規表現でできたのですね…。 マルチバイト…了解しました! はい、シングルバイトの記号は今のところ使わないので大丈夫です。 迅速に回答いただき、助かりました!

関連するQ&A