我正在尝试为以下String-
创建一个正则表达式<tr>
<td colspan=2>
<p><b>
CITY Head:
<span >
<span >##CITY##</span>
<o:p></o:p>
</span>
</b>
</p>
</td>
<td colspan=1>
我想在其中找到包含 CITY Head 的整个TD块。我可以使用以下正则表达式。
<td(.*)[\s](.*)[\s]+CITY Head+(.*)[\s](.*)[\s](.*)[\s](.*)[\s](.*)[\s](.*)[\s](.*)[\s]+<\/td>
基本上我必须为 CITY Head 上方和下方的所有行写(.*)[\s]
。但在不同的情况下,这可能会有所不同。
因此,我正在寻找一种将所有(.*)[\s]
组合成独立于行数的通用方法。
答案 0 :(得分:0)
[\s\S]*?
将匹配空格(*
)或非空格({{1}的最小可能数字(?
= 0或更多,\s
= ungreedy) }})(即任何)字符。
\S
断言<td((?!<\/?td)[\s\S])*?CITY Head[\s\S]*?<\/td>
确保(?!<\/?td)
之前的部分不会跨越多个表格单元格。
但使用正则表达式不是解析HTML的可靠方法。特别是,如果HTML包含语法错误,则此正则表达式可能会导致错误的结果。