大虾帮助看下,这个java正则表达式哪里写错了?
先看代码:
先简单说明下:
我想实现的功能是找出字符串中位于<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后第一对{}为止,用""代替换
上文应该说得比较清楚了,本人正则运用不熟,请大虾指教,谢了
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后第一对{}为止,用""代替换
上文应该说得比较清楚了,本人正则运用不熟,请大虾指教,谢了
...全文
相关推荐
详解Java判断是否是整数,小数或实数的正则表达式
在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。
Java正则表达式,提取双引号中间的部分方法
今天,我们将分享Java正则表达式提取双引号中间的部分方法,这种方法可以应用于各种字符串处理场景中。什么是正则表达式?
JAVA正则表达式详解可以帮助你做验证
Java正则表达式是编程语言Java中用于处理字符串的强大工具,它主要用于文本匹配、查找、替换和分割等操作。
java(大虾的笔记)
大虾的笔记"很可能是某位资深Java开发者或教育者整理的学习资料集合,这些文档可能包含了丰富的Java编程知识,从基础概念到高级特性,以及实战经验。
java正则表达式帮助文档(全)
Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配和字符串处理,广泛应用于数据验证、文本分析和Web开发等多个领域。


Web 开发
