• 締切済み

◆文字列内の複数置換

いつもお世話になっています。 置換についてご教授下さい。 文字列($str)を置換して$afterのように変換させたいです。 配列($patterns)で置換のパターンは持っています。 $str = "あF03いうえF02おF01"; $patterns = array("F01" => "A", "F02" => "B", "F03" => "C"); $after = "あCいうえBおA"; 宜しくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

noname#87667
noname#87667
回答No.1

何を期待しているのかよくわかりませんが、愚直にfor文とかで$patternsからキーと値を取得して、str_replace関数で置換という方法はダメなのでしょうか?

gogovamos
質問者

補足

foreach ($patterns as $key => $val) { $result = ereg_replace($key1, $val, $str); } こんな感じでできました。。 お騒がせいたしました。

関連するQ&A

  • Excel置換関数を用いて複数の文字列を置換したい

    上手く置換ができずに困っています。よろしくお願いします。 文字を入力した列の隣に、数値化する列を作成しようと思っています。 置換項目を6つ設定しようと思っているのですが、 A=4 B=3 C=2 D=1 E=0 F=0 の条件です。 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"A","4"),"B","3"),"C","2"),"D","1"),"E","0"),"F","0") これではできませんでした...。 どなたか、わかる方がいらっしゃいましたら、ご教授願います。

  • 文字列になっている配列を‥

    以下の値がDBに文字列の項目に登録されています。 DB から値を取得したのはいいのですが文字列なので foreach でグルグルしようとすると怒られてしまいます。 配列の型に変換できればいいのですが(array)だとうまく行かないしどうすればいいかどなたかご教授願えないでしょうか。 よろしくお願いします。 ■値(文字列でDBに格納されてます‥) array( 1=>'a', 2=>'b', 3=>'c', 10=>array( 'A'=>1, 'B'=>'hoge1', ), 11=>array( 'A'=>2, 'B'=>'hoge2', ), 12=>array( 'A'=>3, 'B'=>'hoge3', ), )

    • 締切済み
    • PHP
  • 配列に格納した文字列の置換

    Perlで、配列@arrayの要素それぞれを文字列$strから見つけてタグで囲みたいと思っています。 $str = 'abc+fghoge(ij'; @array = ('+', '(', '?', '//', 'hoge'); $pattern = '\Q' . join '\E|\Q', @array . '\E'; $str =~ s/($pattern)/<TAG>$1<\/TAG>/g; @arrayの要素には、メタキャラクタが含まれる可能性があるため、\Qと\Eで挟む必要があるかと思うのですが、上のようにしてもうまくいきません。下だとうまく置換されるので、\Qや\Eの使い方は間違っていないと思うのですが、どなたかアドバイスいただけないでしょうか。 $str =~ s/(\Q+\E|\Q(\E|\Q?\E|\Q//\E|\Qhoge\E)/<TAG>$1<\/TAG>/g; よろしくお願いします。

    • ベストアンサー
    • Perl
  • エクセル 複数の置換

    おはようございます。たとえば、以下の画像のようにアルファベットが並んでいたとします。そのうち、AとBとCの3つをFに置換したいとすればどのようにすればいいのでしょうか。検索と選択→置換→検索する文字列→A→置換後の文字列→F これを同じようにBもCもすればできますが、大量の検索する文字がある場合、一つ一つ打っていくのがたいへんなのですが何かいい方法はありますか。ご回答よろしくお願いします。

  • 文字列の置換で・・・

    Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し   その際に変換した文字数も表示してください。     basic→出力結果: "bbsic" 置換した文字数は1です。

    • ベストアンサー
    • Java
  • Javascriptでの正しい文字置換方法

    Javascriptのサンプルなどで置換処理は A→Bの置換を行う場合 文字列をAで配列に分割してそれをB区切りに連結するという方法を使っているのを見かけるのですが納得いきません。 Perlで書いた場合、こんな感じの処理ですね。 $str = join("B",split(/A/, $str)); もう少し正直に $str =~ s/A/B/g; に該当するような正しい記述は無いものでしょうか?

  • PHP:2つの置換文字列を一気に変換するには

    PHPで1つの文字列変数内に2つの置換文字列が存在する場合一気に変更可能でしょうか? $data = "a%CHANGE1%c%CHANGE2%"; 置換文字列1:%CHANGE1% ⇒ "b"に変換 置換文字列2:%CHANGE2% ⇒ "d"に変換 ↓すると print($data); 「abcd」 となる感じです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 文字列の置換

    AファイルのA1セルからBファイルのC1セルにデータを反映させたとします。 その際に以下のように文字列を複数置換させたいのです。 A1セル   C1セル りんご → みかん みかん → ぶどう なし  → 空欄 空欄  → 空欄 上記のようにセルのデータを複数置換することはできるのでしょうか? 又、置換できるならどの関数を使えばよいのでしょうか?

  • C言語の文字列で

    基本的なことですがよろしくお願いします。 文字列の配列を作る時 文字を個々に配列にする場合配列の大きさを\0を合わせた5にすると思います str[5] = {'a','b','c','d','\0'} 疑問に思ったのは文字列で初期化する場合は\0はコンパイル時に自動で付加と説明を受けましたが、初期化時には配列の大きさは文字列の長さだけで良いのでしょうか? str[4] = "abcd" 解らなければ多く取ればいいよと言われればそれまでですが、for文で回転させる時は'\0'はどうなっちゃうんでしょうか

  • replace()での文字列置換について

    お世話になります。 replace()で文字列置換をするとき、 sentAry=new Array("aabb()c()bbc","・・・", sent=sentAry[0]; で、 sent=sent.replace("()","(   )") と、すると、 sent="aabb(   )c()bbc;" と、なることを期待したのですが、 sent="aabb(   )c(   )bbc;" と、なってしまいました。 つまり全ての()が(   )に変換されてしまいました。 マッチングした全ての文字列か、マッチングした最初の一つだけか が、グローバル検索のg属性と、いうものにより異なるというような記載を見つけましたが、 だからと、いってどのようにすればよいのか 一向にわかりません。 どなたか、わかる方見えましたら、よろしくご教示お願いします。

専門家に質問してみよう