• ベストアンサー

正規表現ereg_replaceで、ダブルクオートの中身をカットしたい

AAA"BBBBBB"CCCCCEF KKK"ABBCBBCKE"DDDDDEFG といった文字列があるのですが、これを AAACCCCCEF KKKDDDDDEFG この様に、"~"の中身をダブルクオートも含め全てカットしたい場合、ereg_replaceを使った方法を教えて下さい。 $str = ereg_replace("\"","",$str); だと当然ダブルクオートの中身までは外れてくれないので…。

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

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

  • ベストアンサー
  • yama-o-
  • ベストアンサー率100% (2/2)
回答No.1

preg_replace を使ってなら、 $str = preg_replace('/"[^"]+"/', '', $str); な感じでしょうか。 正規表現の意味は、 ダブルクウォートが初めにあって、その後ダブルクウォート以外が連続し、その後にダブルクウォートがある部分を空文字にする。 といった具合です。

tomatocot
質問者

お礼

pregの方を使うのですね。 ばっちり行けました! どうもありがとうございましたm(__)m

関連するQ&A

  • mb_ereg_replaceについて

    マルチバイトでの置き換えについて質問です。現在は以下のように str_replaceで置き換えしており文字化けはないのですがマルチバイト 対応のmb_ereg_replaceで実行したほうがいい事を知りました。 以下現在のソースです。 // 検索文配列 $search = array("{#aaa#}", "{#bbb#}", "{#ccc#}"); // 置き換え文配列 $replace = array("あああ", "いいい", "ううう"); // 置き換え $str = str_replace($search, $replace, $str); 単純にstr_replaceをmb_ereg_replaceにしてみたのですがエラーに なってしまいました。 置き換えしたい文字が複数あるのでできれば検索文字、置き換え文字を 配列として使用したいのですがどうすればいいのでしょうか? ちなみにですが文字コードはutf-8です。

    • ベストアンサー
    • PHP
  • perlのシングルクォートとダブルクォートの置き換えについて

    perlのシングルクォートとダブルクォートの置き換えについて お世話になります。 現在、perlにて開発を行っているのですが、一つ問題に当たってしまいました。問題になっているのは、文字列を扱う部分です。perlにおいて文字列はシングルクォートに囲まれたものと、ダブルクォートに囲まれたものがあると思うのですが、この両者の違いは、内部に書かれた変数等を展開するか否かだったと思います。 実は開発の途中でこのシングルクォートで囲まれた文字列を、ダブルクォートに囲まれた文字列に変更しなければいけなくなりました。つまり $test = 'aaa';  を  $test = "aaa"; としたいのです。これってperlの仕様的に可能なのでしょうか? かなり悩んだのですが、どうしてもわかりませんでした。 ちなみに、なぜこの処理が必要なのかというと、HPの製作をしているのですが、設置したフォームからその内容を得るというプログラムを書いた際に、そのフォームの内容がシングルクォートでしか得られないからです。シングルだとそののちの処理に影響が出てしまうのです。 だれかご存じないでしょうか。よろしくおねがいします。

    • ベストアンサー
    • Perl
  • ereg_replaceについて

    ereg_replaceで文字を入れ換えしようとしております。 その際、 <A HREF="http://www.xxx.co.jp/xxx/xxx.cfm?pd=13850" target="_blank">xxx</A> という文字列の頭のタグ開始部分を取ろうと思ってるのですが、URLに?が入ってるものが入れ換えができません。 解決方法など、お分かりになる方おられましたら、ご教授のほうよろしくお願いします。

    • 締切済み
    • PHP
  • HTMLは、シングルクォートかダブルクォートか?

    HTMLで、<img src="images/spr2002.gif" width=130 height=130 border=0 alt="写真"> などクォート文字列がよくでてきますが、文法的にはシングルクォートかダブルクォートのどちらでもOKなのでしょうか? 大抵のHTMLエディタではダブルクォートを採用している事が多いようですが、私的には、PerlやPHPのprint文などでクォート文字列をエスケープする必要がないので、シングルクォートが良いような気がするのですが、みなさん、どちらが望ましいと思われますか?

    • ベストアンサー
    • HTML
  • シングルクォート、ダブルクォート使用方法

    初心者で勉強中です。 相当素人な質問なんですがよろしくお願いします。 Perlで使われる、シングル、ダブルクォートの自分の認識なのですが ・ダブルクォートは変数やエスケープ文字を評価してくれる。 ・シングルはそのまま文字列として出力される。 ということだと思っているのですがただ、『print』の後の表示させる文字列、数字などがシングルで囲まれていたりダブルだったり、またどちらも使わない場合などあるのですがこの使い分けはどのようにすれば良いかわかりません。 単に文字列の場合でもダブルクォートで囲っていたりと・・・ 以下の例ですと use strict; print "Content-type: text/html\n\n"; my $hensu = 1; print $hensu."<br>\n"; $hensu = "moji"; print "$hensu"; 上記をブラウザ出力すると 1 moji となるということなのですが、数字であればダブルクォートで囲まなくても展開されるということでしょうか?また後ろの2行の $hensu = "moji"; print "$hensu"; とは、どちらもダブルクォートで囲む必要があるのでしょうか。 法則性についてどなたか分かるかた、おしえていだだけますでしょうか。

    • ベストアンサー
    • Perl
  • ダブルクォート、シングルクォート、\について

    こんにちは。 PHPでメールフォームを作ったのですが、2つ問題点があります。 1.テキストフィールドにダブルクォートで文字を囲んで送信すると入力された情報が返されず、何も入力されていないメールが送られてきます。 2.シングルクォート、\をいれると前に\がついてしまいます。(こんなカンジ→\'\\)フォームはHTMLで作成しています。確認画面のフォームにstripcslashes($_POST[name])をかけておりブラウザ上だとシングルクォートと\は除去されているのですが、メールだと除去されてません。 ダブルクォート、シングルクォート、\が付いた文字列をPHP・HTMLにどのように記述すれば、メールにきちんと送られるようになるのでしょうか?

    • 締切済み
    • PHP
  • ダブルクォーテーションのreplaceの方法

    JavaScriptで文字を置換する際に AAA = new String(AAA).replace(/ZZZ/g, "QQQ"); にしますよね、これで文字列中のダブルクォーテーション「"」を 任意の文字に変換したいのですが、何か良い方法はないでしょか? よろしくお願いします。

  • 変数にダブルクォートがあたらダブルクォートを二つ重ねる

    ある変数の中身が「カルテに"記載"あり」のように、ダブルクォートが含む場合、ダブルクォートを二つ重ねたいです。 例1 変換前「カルテに"記載"あり」 変換後「カルテに""記載""あり」 例2 変換前「"カルテに記載あり"」 変換後「""カルテに記載あり""」 ご教授願います。

  • ダブルクォーテーションを含む正規表現について。

    正規表現によるマッチング(?)を勉強しています。 例えば「blog」という文字列で、マッチングを試みる場合は、 String str = "blog"; で、strに格納すると思うのですが、例えば「link rel=""」という文字列でマッチングを試みる場合はどうすればいいのでしょうか? 「""」の部分をそのまま文字列のダブルクォーテーションの中に入れると、エラーになってしまうので、何か別のやり方が必要だと思うのですが、わかりません…。

    • ベストアンサー
    • Java
  • ereg_replaceの文字化けについて

    宜しくお願いします。 PHPで文字列の置き換えをする関数の『ereg_replace』についてですが、この関数を使う変数に『'』がはいると、置き換え後にその『'』の前に『\』が付いちゃうんですが、これを回避する方法は無いでしょうか?ちなみに、文字化けするソースを明記させて頂きます。 $title_edit = ereg_replace("/\x0D\x0A|\x0D|\x0A/","<br>","${title}"); 入力フォームでtextareaで入力された項目が$titleに入るのですが、textarea内でエンター改行した場合に、その改行コードをHTML上の<BR>タグに置き換えるというものなんですが、これを行うと、『'』の前に『\』が入ってしまうのです。原因が良く判らないで困っています。 お願いします!教えて下さい!!

    • ベストアンサー
    • PHP

専門家に質問してみよう