1

preg_match_all() を使用して、次のようなものに一致させたい:

...randomtext...>MATCH1</a>" (MATCH2)"...randomtext...編集:明確にするために、これはまさに、括弧、引用符、角括弧などを含む、データを抽出しようとしている文字列です.

これが私が試したことです:preg_match_all("/^>(.+?)</a>\" \((.+?)\)\"$/", $htmlfile, $matches);

MATCH1as$matches[1][0]およびMATCH2asとして抽出する必要があります$matches[2][0]

なぜそれが機能しないのですか?

ありがとう

4

2 に答える 2

3

/パターン内でエスケープする必要があり、パターンをandに固定したくない^$

したがって、おそらくこれは機能します:preg_match_all("/>(.+?)<\/a>\" \((.+?)\)\"/", $htmlfile, $matches);

于 2012-08-12T05:32:07.517 に答える
3

終了タグをエスケープしていません</a>

これはうまくいくはずです:

preg_match_all("/>(.+?)<\/a>\" \((.*?)\)/", $htmlfile, $matches);

コードパッドの例を参照してください。

于 2012-08-12T05:32:19.563 に答える