- ベストアンサー
2つ以上の連続する空白文字を除去
フォームから受け取った値の中の2つ以上の連続する空白文字を削除したいのですがどうすればいいでしょうか。 一つは区切り文字として残したいのです。 調べてみたところ splitで正規表現するとできる というサイトを見たのですが具体的に書かれていなかったのでよくわかりませんでした。 わかる方お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
$data = preg_replace("/[ \s]+/"," ",$data);
その他の回答 (3)
- DM9
- ベストアンサー率37% (43/115)
「2つ以上の連続する半角スペースを1つの半角スペースに置換する」という意味でよろしいですか?$stringにフォームから受け取った値が代入されているとします。 $string = preg_replace("/\s{2}/"," ",$string); で$stringがご希望通りに整形されます。 \sというのは正規表現でいうところの半角スペースを意味する特殊文字です。 $string = preg_replace("/\s{2}/","\s",$string); とやればよさそうなもんなのですがうちでやってみたら上の方がオッケーでした。下はダメ。私の環境はPHP Version 5.0.4。PHPのバージョンによって正規表現を使ったときの細かい挙動が違うらしくて(詳しいことはきかないでぇ)そちらで動くかどうかわかりませんがやってみてください。
お礼
2つの空白だとうまくいったのですが、たくさん空白があるとうまくいきませんでした。 わざわざ調べてくださってありがとうございました。
単純な文字列なら $変換後文字列 = str_replace( "△△", "△", $変換前文字列 ); ※△は空白文字です の方が効率的です。
- asahina02
- ベストアンサー率47% (95/202)
$変換後 = preg_replace( "/□□/", "□", $文字列 ); ※□は空白文字です で、一発で出来ませんかね?
お礼
うまくいきました。 ありがとうございました。