質問の編集履歴

< 前の版

編集後

2017/08/20 07:44:30

PHPのpreg_match_allで、正規表現チェッカーとEclipseの結果が異なりうまくいかなく困ってます

HTMLの<table>内の<tr><td>から必要な情報を取得したいのですが、
正規表現チェッカーでは正しい結果が 2次元配列に繰り返しで入るのですが、
Eclipseでは、全体がarray[0][0]にマッチしてしまい、array[1][0]、array[2][0]... は最終行しか取れてない状況です。

元データ

<tr class="a"><td class="b">1</td><td class="c">1</td><td class="d"><a href="test1">test1</a></td><td class="e">1</td><td class="f"><a href="test1">test1</a></td></tr>
<tr class="a"><td class="b">2</td><td class="c">2</td><td class="d"><a href="test2">test2</a></td><td class="e">2</td><td class="f"><a href="test2">test2</a></td></tr>
<tr class="a"><td class="b">3</td><td class="c">3</td><td class="d"><a href="test3">test3</a></td><td class="e">3</td><td class="f"><a href="test3">test3</a></td></tr>


正規表現

preg_match_all('@<tr.*><td.*>(.*)<\/td><td.*>(.*)<\/td><td.*>(<a.*>.*<\/a>)<\/td><td.*>(.*)<\/td><td.*>(<a.*>.*<\/a>)<\/td><\/tr>@', $html, $matches);


htmlは mb_convert_encodingでUTF-8に変更してから、改行、タブを削除してます。

どなたかわかる方いらっしゃいましたらご教授お願いします。

質問ページに戻る