*注意: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>
我真的很想用 RegEx 提取它,并且不想在这种情况下使用 HTML 解析器。
我做这个正则表达式(我使用 s-flag 来忽略文件的换行符):
\<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)