• ベストアンサー

、"(ダブルクォーテーション)で囲まれている文字列を正規表現で取得

質問させてください。 abcdef -s "xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh" asdakjsd のような文字列があります。 これの、"(ダブルクォーテーション)で囲まれている文字列を取得したいのですが、正規表現がうまくいきません。 取得結果としてはは、xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh の部分がほしいです。 preg_match('/"([.*])"/', $str, $matches);とやったり preg_match('/\"([.*])\"/', $str, $matches);とやったり preg_match('/\"([.*?])\"/', $str, $matches);とやったりしたのですが、 どうしても$matchesにほしい結果は入っていません。 どのような正規表現で取得可能でしょうか? 何卒ご教授ください。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

preg_match('/"(.*?)"/', $str, $matches); でよいのでは?

myaa_myu
質問者

お礼

ありがとうございます!取得できました!! ちなみに欲を言うようですが、$maches[0]にはダブルクォーテーションもついた取得結果が格納されますが、 この最初と最後についたダブルクォーテーションを取り除いた結果を一発で取得というのはできないものでしょうか? やはり取得後に、ダブルクォーテーションを削除する必要がありますでしょうか。

その他の回答 (1)

回答No.2

<?php $str = 'abcdef -s "xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh" "aiueo" asdakjsd'; $result = preg_match('/"(.*?)"/', $str, $matches); echo $matches[1]; これじゃダメですか。

myaa_myu
質問者

お礼

ありがとうございます! $maches[1]に入っているのですね。。。 PHPのマニュアルは読んでいたはずなのですが、盲点でした。 おかげで期待通りの結果を取得できました!

関連するQ&A