大虾帮助看下,这个java正则表达式哪里写错了?

网络科技 网络科技 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先看代码:

public static void main(String[] args){
String str = "ab<style type=\"text/css\" > .?[]cd*{ss}\r\n body {ef}gh{} body , table{ij} kl</style>mn";
String reg = "<style[\\s][\\s\\S]*?>[\\s\\S]*?([\\s][b][o][d][y][\\s\\S]*?\\{[\\s\\S]*?\\})|([b][o][d][y][\\s]*?,)[\\s\\S]*?<\\/[s][t][y][l][e]>";
System.out.println("替换结果:"+str.replaceAll(reg, ""));//值为:abgh{} mn,不是我想要的
}

先简单说明下:
我想实现的功能是找出字符串中位于<style>标签类的body{...}与body, 并把这两个用空串代替。
实例代码中,我想要的替换结果是:

"ab<style type=\"text/css\" > .?[]cd*{ss}\r\n gh{} table{ij} kl</style>mn"
即把:
"ab<style type=\"text/css\" > .?[]cd*{ss}\r\n body {ef}gh body , table{ij} kl</style>mn";
红色部分替掉。
为避免复杂起见,约定str字符只有一对<style>标签,body前后只允许为空格或,{ 即取body后逗号为止和取body后第一对{}为止,用""代替换
上文应该说得比较清楚了,本人正则运用不熟,请大虾指教,谢了
...全文

相关推荐

评论 18
收藏 已收藏
分享
返回顶部
网络科技
Web 开发 81,108 成员 341,721 内容