人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP5の正規表現についての質問です。

$data = "ホゲ モゲ ハゲ"

の文字を"ホゲ"と"モゲ"と"ハゲ"に分けて配列に格納したいのです。

"ホゲ モゲ ハゲ"の全角カタカナの部分は、英数字・ひらがな・全角カタカナ・半角カタカナなどいろんな場合があります。
スペースの部分は、半角スペース・全角スペース・カンマ・カンマ+半角スペースのいずれかです。

よろしくお願いします。

●質問者: seadwell
●カテゴリ:ウェブ制作
✍キーワード:ひらがな カタカナ ハゲ 数字 正規表現
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

mbstring の設定はできていると仮定して、

$split = mb_split(/( | |,|, )/,$data);

ってとこですか。

PHP: mb_split - Manual

◎質問者からの返答

スミマセンこちらはどうしてもエラーが出るのです。

正規表現、()の中の書き方がさっぱりなのです。

mb_split関数教えて頂いてありがとうございました。


2 ● Mook
●100ポイント ベストアンサー

本当はmb_split を使用すべきかもしれませんが、split でも(こちらの環境では)一応できました。

\t の前が半角スペース、後ろが全角スペースになっています。

<?php
 $ar = split( "[ \t ,]+", "ホゲ モゲ ハゲ,ホゲモゲ, ハゲ");
 print_r( $ar );
?>

ご希望の仕様とは異なっていますが、タブも含めて複数の空白文字があった場合の実装例です。

実行結果は下記です。

Array ( [0] => ホゲ [1] => モゲ [2] => ハゲ [3] => ホゲ [4] => モゲ [5] => ハゲ )

PHP:split

◎質問者からの返答

こちらは、希望通り動作しました。

ありがとうございました。

私の元データの頭にスペースかタグが入っているのか?[0] =>が空になってしまいます。

これを取り除くにはどのように書けばよろしいでしょうか?

上記テストデータでも頭にスペースを入れると、[0] =>が空になってしまいます。

どなたかよろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ