需求:
现在有一个需求,要把html标签里面包含id的内容都去掉啊,我想大概就是把包含< id =后面的内容去掉格式为:
<(任意1 数字字母)id=任意2
目的:
需要替换上面格式的任意2:为" "同时加上火龙说得这个逻辑:
只有 id 前面是空白字符、分号或者引号时才满足匹配条件,像:
classid=xxxx; objectid=xxx; 这些都是不能匹配的。
如:
1.<div id="div1">
结果就是
<div id=" ">2.<input type=text id=text1 value=1>
结果就是
<input type=text id= value=1>
3.<input type="text" id="text2" value="1">
结果就是
<input type="text" id=" " value="1">
也不知道我对这个需求分析的对不对!
反正就是需要把要把html标签里面包含id的内容都去掉啊!
麻烦火龙帮我分析下,能写个正则啊!麻烦了啊!
现在有一个需求,要把html标签里面包含id的内容都去掉啊,我想大概就是把包含< id =后面的内容去掉格式为:
<(任意1 数字字母)id=任意2
目的:
需要替换上面格式的任意2:为" "同时加上火龙说得这个逻辑:
只有 id 前面是空白字符、分号或者引号时才满足匹配条件,像:
classid=xxxx; objectid=xxx; 这些都是不能匹配的。
如:
1.<div id="div1">
结果就是
<div id=" ">2.<input type=text id=text1 value=1>
结果就是
<input type=text id= value=1>
3.<input type="text" id="text2" value="1">
结果就是
<input type="text" id=" " value="1">
也不知道我对这个需求分析的对不对!
反正就是需要把要把html标签里面包含id的内容都去掉啊!
麻烦火龙帮我分析下,能写个正则啊!麻烦了啊!
String str = "<input type=\"text\" id=\"text2\" value=\"1\"> " +
"\r<input type=\"text\"id=\"text2\" value=\"1\"> " +
"\r<input type='text'id=\"text2\" value=\"1\"> " +
"\r<input type=\"text\" " +
"\rid=\" aa\" value=\"1\"> ";
str = str.replaceAll("(\\s|\r|\"|')id\\s*=\"[^\"]*\"", " id=\" \" ");
System.out.println(str);
String str = "<input type=\"text\" id=\"text2\" value=\"1\"> " +
"\r<input type=\"text\"id=\"text2\" value=\"1\"> " +
"\r<input type='text'id=\"text2\" value=\"1\"> " +
"\r<input type=\"text\" " +
"\rid=\" aa\" value=\"1\"> ";
str = str.replaceAll("(\\s|\r|\"|')(?i)Id\\s*=\"[^\"]*\"", " id=\" \" ");
System.out.println(str);
String str = "<input type=\"text\" id=\"text2\" value=\"1\"> " +
"\r<input type=\"text\"id =\"text2\" value=\"1\"> " +
"\r<input type='text'id='text2' value=\'1\'> " +
"\r<input type=\"text\" " +
"\rid=\" aa\" value=\"1\"> ";
str = str.replaceAll("(\\s|\r|\"|')(?i)Id\\s*=([\"'])[^\"]*\\2", " id=\" \" ");
System.out.println(str);
着写写,否则你永远不会得到提高,总不能一碰到了就来问吧?昨天的那个帖子你又提出了新的要求,我感觉实际上是对别人劳动成果的不尊重,这些你在发布帖子
的时候就能说得很清楚的。那个表达式我昨天花了两个小时,我想我再改的话,你可能会提出其他的
要求。我也不知道说了多少遍了,再重复一下吧:1,正则表达式是一种模式匹配,是根据字符串的规律来操作的,因此需要详细说明具体要做些什么;
2,对于查找的问题,详细说明寻找字符串的特征是什么,这些字符串的边界是什么,或者说有些什么规律;
3,对于替换的问题,详细说明原串是什么,替换后是什么,有些什么规律;
4,对于验证的问题,详细说明验证的格式是什么;
5,举两三个覆盖范围尽可能广的示例。需要注意的是,正则表达式仅仅能满足所提供的示例!
确定一定以及肯定的绝对支持!
干脆楼主聘请bao110908的了,这样不管啥问题都可以解决了!
a b d c e
XX=X 可能无限多
请高手帮忙当中穿插的是:String s = "find 字段名1=关键词1 not 字段名2=关键词2 or 字段名3=关键词3 "
+ "xor 关键词4 关键词6 TS=TO 2008-06-11, FR 2007-06-11 and 字段名4=关键词5 关键词7";
(本想让关键词6变个颜色的,可是UBB不能嵌套,只有再发一遍了,上面的帖还不能自己删除,郁闷)在关键词6处的前面不加(and or not xor)这个语句也是对的,所以也要解析这种情况的
现在就是如何怎么解析成
关键词1
关键词2
关键词3
关键词4
关键词6
关键词5
关键词7
[顺序没要求的],怎么写表达式解析这个结果呀? 先谢谢大家的参与
弄到最后的要求是这样的:String s = "find 关键词A 关键词B 字段名1=关键词1 not 字段名2=关键词2 关键词3 or " +
"字段名3=关键词4 关键词5 关键词6 关键词7 xor 关键词8 关键词9 " +
"TS=TO 2008-06-11, FR 2007-06-11 " +
"and 字段名4=关键词10 关键词11 or 关键词12";找到的结果和格式是这样的:关键词A 关键词B
关键词1
关键词2 关键词3
关键词4 关键词5 关键词6 关键词7
关键词8 关键词9
关键词10 关键词11
关键词12如果开始不要节省笔墨直接把最为复杂的情况说清楚,那我就不用做其他五六个无用功的回复了,
两天的时间全耗在那个帖子上了。从那以后凡是问到正则表达式问题的帖子,问题说明少于三行,没有多个示例的帖子就不看了,
因为这种帖子我估计写了等于白写,因为每个人的理解能力都不是一样的,我的理解跟楼主的
理解,如果没有足够的文字描述的话,肯定是要重新写过的。
为了避免把 background-color: #ffffff; 这种样子的替换掉的话,可以改成:
Java code String regex = "(?i)((?: <[^>\\s]+[^>]+?style\\s*=\\s*\"|\\G)[^\">]*?)" +
"\\s*(? <=[\\s;\"])(?:font-size|color)\\s*:[^;]*;\\s*";
只有 font-size 或 color 前面是空白字符、分号或者引号时才满足匹配条件,像: aaafont-size: xxxx;、background-color: red; 这些都是不能匹配的。 呵呵…
果然很厉害啊...能不能修改一点
1. <(任意1 a-z)任意2style任意3=任意4"任意5color或font-size任意6;任意7:任意8"
改为
<(任意1 字母和数字)任意2style任意3=任意4"任意5color或font-size任意6;任意7:任意8"
2.目的:
需要替换上面格式的color或font-size[加]任意6[加];[加]任意7[加]:为""
改为:
需要替换上面格式的color或font-size[加]任意6[加];[加]任意7[加]:为" " 3.我们用的是jdk1.5
是不是只能用
String regex = "(? <= <[^>\\s]{1,100}[^>]{1,100}?style\\s{0,100}=\\s{0,100}\"[^\"]{0,100}?)" +
"\\s*(? <=[\\s;\"])(?:color|font-size):[^;]*;\\s*";
这种方式啊?因为我用您说的jdk1.6的代码测试也没什么问题啊