正则表达式匹配并丢弃具有特定html标记的多行

时间:2016-06-16 03:12:41

标签: html regex jsp

使用正则表达式时,我在jsp文件中匹配html标签时遇到一些问题 我想丢弃jsp文件中的注释行并获得匹配的行 这是我的测试html标签,

条件:
1.抓住评论行但不在正则表达式匹配组中, 2.在评论专栏之后抓住一行。

```

[前]

<%--

  <img src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">
--%>
  <img src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">

[后]

  <img src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">

```

寻求帮助。 :)

1 个答案:

答案 0 :(得分:0)

描述

ServiceSite.com

Regular expression visualization

此正则表达式将执行以下操作:

  • 找到括在<%--((?:<\/?[a-z]+(?=[\s>])(?:[^>=]|=(?:'[^']*'|"[^"]*"|[^'"\s]*))*\s?\/?>|[^<])*?)--%> <%--标记
  • 中的评论
  • 将注释标记的全部内容保存到捕获组1
  • 避免难以在HTML中进行模式匹配的边缘情况

实施例

现场演示

https://regex101.com/r/fH2xU5/3

示例文字

--%>

样本匹配

<span><a onmouseover=' if ( 3 > a ) { var string=" <img src=NotTheDroidYouAreLookingFor.jpg>; "; } ' href="link.html">This is a droid I'm looking for: <img src=DesiredDroids.png></a>
</span>

<%--

  <img onmouseover=' if ( 3 > a ) { var string=" --%> <img src=NotTheDroidYouAreLookingFor.jpg>; "; } ' src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">
--%>

No start comment tag

  <img src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">
--%>

<%--

  <img src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">
--%>

解释

MATCH 1
1.  [196-369]   `

  <img onmouseover=' if ( 3 > a ) { var string=" --%> <img src=NotTheDroidYouAreLookingFor.jpg>; "; } ' src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">
`

MATCH 2
1.  [481-557]   `

  <img src="/x.gif" alt='x.gif'>
  <input type="text" name="x" value="y">