- ベストアンサー
、"(ダブルクォーテーション)で囲まれている文字列を正規表現で取得
質問させてください。 abcdef -s "xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh" asdakjsd のような文字列があります。 これの、"(ダブルクォーテーション)で囲まれている文字列を取得したいのですが、正規表現がうまくいきません。 取得結果としてはは、xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh の部分がほしいです。 preg_match('/"([.*])"/', $str, $matches);とやったり preg_match('/\"([.*])\"/', $str, $matches);とやったり preg_match('/\"([.*?])\"/', $str, $matches);とやったりしたのですが、 どうしても$matchesにほしい結果は入っていません。 どのような正規表現で取得可能でしょうか? 何卒ご教授ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
preg_match('/"(.*?)"/', $str, $matches); でよいのでは?
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
<?php $str = 'abcdef -s "xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh" "aiueo" asdakjsd'; $result = preg_match('/"(.*?)"/', $str, $matches); echo $matches[1]; これじゃダメですか。
お礼
ありがとうございます! $maches[1]に入っているのですね。。。 PHPのマニュアルは読んでいたはずなのですが、盲点でした。 おかげで期待通りの結果を取得できました!
お礼
ありがとうございます!取得できました!! ちなみに欲を言うようですが、$maches[0]にはダブルクォーテーションもついた取得結果が格納されますが、 この最初と最後についたダブルクォーテーションを取り除いた結果を一発で取得というのはできないものでしょうか? やはり取得後に、ダブルクォーテーションを削除する必要がありますでしょうか。