在进行搜索时,我想跳过所有以结束标记结尾的代码

时间:2016-08-20 13:45:23

标签: html regex

我的HTML看起来像这样:

<td class="danish">(.*)
\s*(.*)</td>

我正在修理换行符:

 <td class="danish">Det tyckeg jag</td>

但有时HTML会在同一行的标记中结束:

<td class="danish"> Det
  tycker jag!</td>
<td>      
  <?php audioButton("../../audio//det_lyder_godt","det_lyder_godt"); ?>

我希望它在搜索时跳过这些行,并找到下一个折线。

如果有人认为让代码看起来好看只是一件轻浮的事情,其余代码看起来就像这样(不需要阅读):

parent

我最终不得不把表格中的文字换成audiobutton中的文字一千次,但这是一个不同的问题

2 个答案:

答案 0 :(得分:1)

\s表示“任何空白字符”,包括空格和新行。您可以使用以下内容明确搜索必须包含新行的行

<td class="danish">(.*)\n\s*(.*)</td>

请注意正则表达式中的其他\n

答案 1 :(得分:1)

我认为这就是你要找的东西:

(<td class="danish">(?:(?!</td>).)*)\r?\n\s*

此匹配从<td class="danish">到下一个换行符,除非首先是</td>标记。替换为"$1 ""\1 "(不带引号)。

使用\r?\n而不是文字换行符可以使正则表达式更加健壮。更好的是\R,如果你的正则表达式支持它。