String替换的问题 String test=“..........";test=test.replaceAll("class=*>*</","class=*> * </"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 替换单个字符用replace,字符串用replaceAll !具体你可以再参考一下JDK文档! seaman0916(沙漠孤鹰) 关键是通配符的处理啊!你这样是不行的。 为什么不行?replaceAll的参数是正则表达式,又不是普通字符串。 Schlemiel(维特根斯坦的扇子) :是正则表达式。可要先定义一个Pattern使得replaceAll("class=*>*</","class=*> * </");能认得*是表示any string 啊,如果这样的话,*只会被认做本身使用。所以是不行的。 String test="<a href=test.jsp class=blue_color>测试文字</a>";String regExp="(>)(.*)(</)";RegularExpression re=new RegularExpression(regExp);Match m=new Match();if (re.matches(test,m)) { String tmp=m.getCapturedText(2); System.out.println(test.replaceAll(tmp," "+tmp+" "));} SwordsmanF(没人性)你这程序能过我立马给你分,可你这里面RegularExpression Match两个类API里根本没有。Match我猜测也许是Matcher,可RegularExpression 是什么我就不知道了。 基本上搞清楚了,现在就是getCapturedText(),不知如何捕获统配符的具体string,请大虾指点! String test1="";String test2="";test1=test.replaceAll(">","> ");test2=test1.replaceAll("</"," </");我想应该是这样 呵呵,经过一天的努力,终于成功了!基本代码如下:private static String regstr = ".*class=(\\w*)>([\\w\\.]+)</(\\w+)>((</\\w+>)*).*"; //一个正则表达式Pattern p = Pattern.compile(regstr); Matcher m = p.matcher(s);//假设s是需要转换的字符串) while(m.matches()) { //考虑s中可能多次出现regstr,需要全部替换; String s1 = m.group(1); String s2 = m.group(2); String s3 = m.group(3); String s4 = m.group(4); String ref_s = "class="+s1+">"+s2+"</"+s3+">"+s4; s=s.replaceFirst(ref_s, "class="+s1+"> "+s2+" </"+s3+">"+s4); index+=2; m = p.matcher(s); }谢谢各位的提示! 哦上面的index+=2应该comment掉。这是 我判断更复杂情况的时候用的。 呵呵,不好意思,最近两天没有上CSDN,没来得及回你的话啊。8错自己搞定的才印象深刻。恭喜... Java获取网络时间服务器(不是本机,因为可能不准)的标准时间 如何去掉字符串中的问号 算法讨论~ java初学者问一个很弱弱的问题,java中一个类实现了2个接口的问题 关于JAVA界面编程 JMF安装问题 JAVA构造函数可以调用本类的其他方法吗? 急切求助:在JBuilder9下可正常运行的程序为什么用jdk就不能运行呢? 在java中怎样把汉语字符串,转变为非UNICODE编码的字符串啊 如何实现这样的工作流 udp 问题!??? 看看这个问题,为什么会发生I/O中断?
是正则表达式。可要先定义一个Pattern使得
replaceAll("class=*>*</","class=*> * </");
能认得*是表示any string 啊,如果这样的话,*只会被认做本身使用。所以是不行的。
String regExp="(>)(.*)(</)";
RegularExpression re=new RegularExpression(regExp);
Match m=new Match();
if (re.matches(test,m)) {
String tmp=m.getCapturedText(2);
System.out.println(test.replaceAll(tmp," "+tmp+" "));
}
RegularExpression
Match
两个类API里根本没有。Match我猜测也许是Matcher,可RegularExpression 是什么我就不知道了。
现在就是getCapturedText(),不知如何捕获统配符的具体string,请大虾指点!
String test2="";
test1=test.replaceAll(">","> ");
test2=test1.replaceAll("</"," </");我想应该是这样
".*class=(\\w*)>([\\w\\.]+)</(\\w+)>((</\\w+>)*).*"; //一个正则表达式Pattern p = Pattern.compile(regstr);
Matcher m = p.matcher(s);//假设s是需要转换的字符串)
while(m.matches()) { //考虑s中可能多次出现regstr,需要全部替换;
String s1 = m.group(1);
String s2 = m.group(2);
String s3 = m.group(3);
String s4 = m.group(4);
String ref_s = "class="+s1+">"+s2+"</"+s3+">"+s4;
s=s.replaceFirst(ref_s, "class="+s1+"> "+s2+" </"+s3+">"+s4);
index+=2;
m = p.matcher(s);
}谢谢各位的提示!