正则表达式难题 匹配带属性的html标签

医手 2019-04-03 11:21:16
<a href="javascript:alert('>a</a>');" onclick='alert(">b</a>");'>c</a> <a>d</a>

使用正则表达式,如何才能正确的匹配一个完整的a标记?
不用正则我也知道要怎么截取,但我就是固执地...
只要能用正则解决,分不是问题,加分加钱都行哈。

其实我最初的需求是想把UEdior提交的html中的所有js脚本都去掉。理论上来说,这是一个很常见的需求哈。
...全文
398 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
郁郁201 2020-02-01
  • 打赏
  • 举报
回复
[b][/b]
游北亮 2019-04-03
  • 打赏
  • 举报
回复
哈哈,刚看到楼主说加钱? 这个小东西还要用钱搞?来份鸡腿
游北亮 2019-04-03
  • 打赏
  • 举报
回复
测试了一下,符合你的要求:

String reg = "<a(?:\\s([^>]+=(['\"]).*?\\2)*)?>[^<]+</a>";
Pattern pat = Pattern.compile(reg);
Matcher m = pat.matcher("<a href=\"javascript:alert('>a</a>');\" onclick='alert(\">b</a>\");'>c</a> <a>d</a>");
while (m.find()){
    System.out.println(m.group(0));
}
游北亮 2019-04-03
  • 打赏
  • 举报
回复
你提供的这个用例比较特殊,里面还包含不同的引号, 帮你写了一下,可以匹配:

<a(?:\s([^>]+=(['"]).*?\2)*)?>[^<]+</a>
医手 2019-04-03
  • 打赏
  • 举报
回复
csdn自带的正则也不行嘛。还是要从正则的编辑器截图,才看得清楚
医手 2019-04-03
  • 打赏
  • 举报
回复
厉害,学习了 贴个二维码过来,鸡腿我请了

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧