0

文字列があります。この文字列を検索して、アドレスの詳細を変数に割り当てることができるようにする必要があります。

文字列でどのように見えるか:

infoone:"infoone"infotwo:"infotwo"address:"123 fake street pretend land"infothree:"infothree"infofour:"infofour" address:"345 fake street pretend land"infofive: "infofive"infosix: "infosix"

正規表現を使用してこの文字列を検索し、単語アドレスの後の引用符で囲まれたデータのみを持ち上げるにはどうすればよいですか?

注:「123fake street pretend land」というフレーズは、引用符で囲まれている可能性のあるものの使用例にすぎないため、ターゲットにできません。

4

3 に答える 3

2

これは素晴らしい正規表現です

^address:"([^"]*)

これは、行の先頭で^が一致し、グループ1を削除するように、オプションを指定したphpの場合です。

preg_match_all('/^address:"([^"]*)/m', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[1];

アップデート1

preg_match_all('/^address:"([^"]*)/m', $subject, $result, PREG_SET_ORDER);
for ($matchi = 0; $matchi < count($result); $matchi++) {
    for ($backrefi = 0; $backrefi < count($result[$matchi]); $backrefi++) {
        # Matched text = $result[$matchi][$backrefi];
    } 
}

アップデート2

新しいサンプル入力では、最初の^のままにしておくと、次のようになります。

address:"([^"]*)
于 2012-06-06T11:10:09.450 に答える
1

さて、正規表現自体はになります^address:"(.*)"$

preg_match()もちろん、関連する通話を追加する必要があります。

于 2012-06-06T11:06:26.413 に答える
1

この正規表現を使用する

$str='infoone:"infoone"infotwo:"infotwo"address:"123 fake street pretend land"infothree:"infothree"infofour:"infofour" address:"345 fake street pretend land"infofive: "infofive"infosix: "infosix"';

preg_match_all("/address:\"(.*)\"/siU",$str,$out);
print_r($out[1]);
于 2012-06-06T11:55:10.663 に答える