プロが教えるわが家の防犯対策術!

やまとです。

ある文字列の先頭と末尾のスペースを取り除きたいのですが、
どのようにしたら良いでしょうか?

事前に試した事が2つあります。
1.trim を使用する。
 $aiueo = " あいうえ お ";
$aiueo = trim($aiueo));
 とすると、スペースが削除されます。
 しかし、これでは全角のスペースが削除されないようですね。

2.置換する。
 $aiueo = " あいうえ お ";
 $aiueo = str_replace( ' ', '', $aiueo );
 とすると、全角のスペースが削除されます。
 しかし、文字列の先頭と、末尾以外の全角スペースも削除されてしまう
 ようですね。

では、文字列の先頭と末尾の半角スペースと全角スペースを削除したい場合は
どのようにしたら良いでしょうか?
ご教授願います。

A 回答 (3件)

> ある文字列の先頭と末尾のスペースを取り除きたいのですが、


> どのようにしたら良いでしょうか?

$aiueo = " あいうえ お ";
$aiueo = preg_replace("/^[  ]*([^  ]*)[  ]*$/", "\\1", $aiueo);

って感じではどうでしょうか。

[] の中には、半角のスペースと、全角のスペースがひとつずつ入っているので
お間違えなく。

また、二番目の [] に ^ が入っているのもタイプミスではありませんので、ご注意を。

# PHP はやったことが無く、マニュアルを参照しただけなので、自信はありません

参考URL:http://uk.php.net/manual/ja/html/function.preg-r …

この回答への補足

ご解答有難う御座います。
試してみましたが、一部正常に動作しないようです。

$aiueo = "全あいう全えお全";  の時です。
(「全」と言う文字を全角スペースに置き換えて考えてください。)

参考URLで確認し、自分でも試しましたが、できませんでした。

申し訳ないのですが、教えて頂けますでしょうか?
宜しくお願い致します。

補足日時:2002/04/24 17:30
    • good
    • 0

> ん~末尾の空白が削除されないようですね。



二回に分けてみたらどうでしょう。

$aiueo = preg_replace("/^[  ]*/", "", $aiueo);
$aiueo = preg_replace("/[  ]*$/", "", $aiueo);

ちょっと不細工だけど、いけるんじゃないかな。

# 何度も済みませんね (^^;
    • good
    • 0
この回答へのお礼

># 何度も済みませんね (^^;

いえいえ。何度もありがとうございます(^^)
今度は出来そうです。
頑張ってみます。

お礼日時:2002/04/25 15:52

> 試してみましたが、一部正常に動作しないようです。



あ、そうか、間に入る空白がありましたね m(_ _)m

$aiueo = preg_replace("/^[  ]*(.*)[  ]*$/", "\\1", $aiueo);

だとどうでしょうか。真中のピリオドを見逃さないでね。

# 末尾の空白が削除されないかも…

この回答への補足

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

># 末尾の空白が削除されないかも…
ん~末尾の空白が削除されないようですね。
どうしたらいいのだろ( ̄。 ̄;)

私も色々調べてみますが、良い方法分かりましたら、
教えてください。
宜しくお願いします。

補足日時:2002/04/25 13:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!