OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

preg_replaceについて

  • 暇なときにでも
  • 質問No.123735
  • 閲覧数121
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 14% (2/14)

$text = "今日財布を拾った。";
$value = "100円";
$pattern = "/(今日).*(を拾った。)/";
$replace = sprintf("\\1%s\\2");
$text = preg_replace($pattern, $replace, $text);

のような処理を行ったとき、
うまく$textに結果が格納されません。
$valueの最初の文字が数字で無い場合は
うまくいきますが、"100円"のように数字で
始まっていると、うまくいきません。
良い回避方法は無いでしょうか?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル7

ベストアンサー率 46% (6/13)

こんにちわ。

確かに常にスペースが入ってしまいます。(やっぱり指摘されちゃいましたか。←確信犯)

↓こんな方法ではどうでしょう??
$text = "今日財布を拾った。";
$val ="100円";
$value = (string) $val;
$pattern = "/(今日).*(を拾った。)/";
$replace = sprintf("\\1 %2s\\2",$value);
$text = preg_replace($pattern, $replace, $text);
$array = explode(" ",$text);
$text = $array[0].$array[1];

なんだか邪道のような気もするんですが、とりあえずうまくいきます。(例によって自信なし)
お礼コメント
yossy256

お礼率 14% (2/14)

回答ありがとうございます。

$textにスペースが入っていなければ
それでいいと思うのですが、
$textにスペースが入っているとだめですよね。
せっかく回答してもらって申し訳ないんですが。

一応、自分のやりたかったことは、
テキストファイル
hoge = "foo"
bar = "aaa"

END

のfooの部分を置換したかったので
$text = 「テキストファイルの中身」
$val = "999";
$pattern = "/(hoge = \").*?(\".*END)/ms";
$replace = sprintf("\\1%s\\2", $val);
$text = preg_replace($pattern, $replace, $text);
の$patternと$replaceを
$pattern = "/(hoge = )\".*?\"(.*END)/ms";
$replace = sprintf("\\1\"%s\"\\2", $val);
とすることで解決しました。
投稿日時 - 2001-08-25 19:41:24
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル7

ベストアンサー率 46% (6/13)

こんばんわ。 ちょっと試してみました。 >$replace = sprintf("\\1%s\\2"); ここは$replace = sprintf("\\1 %s\\2");の様に\1と%sの間にスペースを1個入れてやるとうまくいくようです。 ところで、$replace = sprintf("\\1 %2s\\2", ...続きを読む
こんばんわ。
ちょっと試してみました。

>$replace = sprintf("\\1%s\\2");

ここは$replace = sprintf("\\1 %s\\2");の様に\1と%sの間にスペースを1個入れてやるとうまくいくようです。

ところで、$replace = sprintf("\\1 %2s\\2",$value);の間違いでは??(PHP初心者なので全然自信なし)
補足コメント
yossy256

お礼率 14% (2/14)

>$replace = sprintf("\\1%s\\2");
は、
$replace = sprintf("\\1%s\\2", $value);
の間違いです。

たしかに、\\1と%sの間にスペースを入れれば
うまくいきますが、出力される文章にも、
スペースが入っちゃうんですよね。。。
投稿日時 - 2001-08-25 08:52:55
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ