在这个例子中:
<TR valign=top>
<TD width=2>Region</TD>
<TD width=3>number</TD>
</TR>
<TR valign=top>
<TD width=2>camp</TD>
<TD width=3>33210</TD>
</TR>
需要正则表达式来查找“region”字并捕获相应的<TR>...Region...</TR>
像这样:<tr [^ <tr]*(region)[^ <tr]*</tr>
答案 0 :(得分:0)
你可以尝试一下:
<tr(?:(?!</tr>).)+(?:<td[^>]*>Region</td>)(?:(?!</tr>).)*</tr>
基本上:
<tr
(?!</tr>
后面跟不是结束标记(?!
的任何内容都是否定前瞻,断言以下文字不存在.
匹配一个字符+
重复前瞻并匹配<td[^>]*>Region</td>
将该行与'region'匹配(?!</tr>).
- 与第2步相同 - 此时可选(*
)</tr>
- 匹配结束标记