一个简单的正则表达式问题

时间:2016-06-10 07:27:19

标签: javascript java html regex web

我正在尝试为以下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]组合成独立于行数的通用方法。

1 个答案:

答案 0 :(得分:0)

[\s\S]*?将匹配空格(*)或非空格({{1}的最小可能数字(? = 0或更多,\s = ungreedy) }})(即任何)字符。

\S

断言<td((?!<\/?td)[\s\S])*?CITY Head[\s\S]*?<\/td> 确保(?!<\/?td)之前的部分不会跨越多个表格单元格。

使用正则表达式不是解析HTML的可靠方法。特别是,如果HTML包含语法错误,则此正则表达式可能会导致错误的结果。