dポイントプレゼントキャンペーン実施中!

質問させてください。

abcdef -s "xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh" asdakjsd

のような文字列があります。
これの、"(ダブルクォーテーション)で囲まれている文字列を取得したいのですが、正規表現がうまくいきません。
取得結果としてはは、xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh の部分がほしいです。

preg_match('/"([.*])"/', $str, $matches);とやったり
preg_match('/\"([.*])\"/', $str, $matches);とやったり
preg_match('/\"([.*?])\"/', $str, $matches);とやったりしたのですが、
どうしても$matchesにほしい結果は入っていません。

どのような正規表現で取得可能でしょうか?

何卒ご教授ください。

A 回答 (2件)

preg_match('/"(.*?)"/', $str, $matches);


でよいのでは?
    • good
    • 2
この回答へのお礼

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

お礼日時:2008/02/06 15:21

<?php


$str = 'abcdef -s "xsalkjsdflsd#$%_asdasdlasdlakjsd&=Daskdjh" "aiueo" asdakjsd';

$result = preg_match('/"(.*?)"/', $str, $matches);

echo $matches[1];

これじゃダメですか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/02/06 16:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています