*注:Array()の出力はPHP print_r()*です。
私はこのHTMLタグを持っています:
<tr>
<td width="40" align="left"><div class="icSkill" id="skill4"></div></td>
<td colspan="2">SOME_VALUE_I_WANT </td>
</tr>
私は本当にこれを正規表現で抽出したいのですが、この場合はHTMLパーサーを使用したくありません。
私はこの正規表現を実行します(ファイルの改行を無視するためにsフラグを使用します):
\<tr\>\<td\swidth="40"\salign="left"\>\<div\s+class="icSkill"\s+id="skill(\d+)".*\<\/tr\>
ここでの問題は、正規表現が最初に見つかった近くのTRタグで停止しないことですが、私はそれを望んでいます。私はそれがおそらくアサーションと関係があることを知っています、私だけが方法を知りません。
Array
(
[0] => <tr><td width="40" align="left"><div class="icSkill" id="skill4"></div></td><td colspan="2">SOME_VALUE_I_WANT
</td></tr><tr><td rowspan="2" align="left"><div class="icGuard" id="guard9"></div></td></tr>
[1] => 4
)
この場合、/ [^ <]*/のような基本的な例は機能しません。正規表現に次のようなことを伝える方法もありますか?
/[^A_STRING]*/ (in words; stop unless you find A_STRING)
OR BETTER EXAMPLE:
/[^A_STRING_FIRST_TIME]*/ (in words; stop unless you find A_STRING for the FIRST_TIME)