0

重複の可能性:
PHPでHTMLを解析および処理する方法は?

次のHTML出力があり、そこからのデータを照合したいのですが、preg_match()とpreg_match_all()を試してみましたが、成功しませんでした。

<td width="130" valign="top">
Jane Doe<br />
            101 Marisa Cir <br />
            Staten Island NY, 10309<br /><br>

「アドレスデータ」を次のように照合したい:

Jane Doe、101 Marisa Cir Staten Island NY、10309

CURLでページを取得します。私はこのようなもので試しましたが成功しませんでした:

preg_match('~<td width="130" valign="top">(.*?[^<])<br /><br>~i', $str, $showme);
4

2 に答える 2

0

[^<]一致しないものはすべて一致すると言うので、各行の終わりに<ある2つは受け入れられません。<br/>試してみるとどうなりますか:

preg_match('~<td width="130" valign="top">(.+?)<br /><br>~i', $str, $showme);

後でそれらのタグを削除したい場合<br/>は、それらを置き換えることができます。

于 2012-10-15T15:00:38.107 に答える
0

ここで説明するように、s修飾子が必要です。ドットが新しい線と一致するようになります。テキストは複数行にわたるため、s修飾子が必要です。次のような正規表現を使用できます。

preg_match_all('~"top">(.*?)<br />(.*?)<br />(.*?)<br /><br>$~s', $text, $matches);

そして、それはうまくいくはずです。こちらのコードパッドの例をご覧ください

于 2012-10-15T15:18:13.723 に答える