读书人

java正则替换字符串有关问题

发布时间: 2012-04-05 12:42:40 作者: rapoo

求助:java正则替换字符串问题
<root id='tt'><![CDATA[111 3333]]><root> <basisInfo><![CDATA[111 3333]]>

我想把<![CDATA 标签里的空格替换成 应该怎么写呀,有高手没

另:CSDN改版后怎么变的这么慢??

[解决办法]
不明白标签是什么 所以不太清楚楼主的要求

是不是 转后变成这个效果:
<root id= 'tt ' > <![CDATA[111      3333]] > <root > <basisInfo > <![CDATA[111      3333]] >


是的话 我的代码是:
public class StrC {

public static String str=
"<root id= 'tt ' > <![CDATA[111 3333]] > <root > <basisInfo > <![CDATA[111 3333]] >";

public String chang(String str, String start, String end, String s1, String s2)
{
int len1=0,len2=0;
do{
len1=str.indexOf("<![CDATA",len2);
if (len1!=-1)
{
len2=str.indexOf(">",len1);
String temp=str.substring(len1,len2);
temp=temp.replaceAll(s1,s2);
str=str.substring(0,len1)+temp+str.substring(len2);
}
} while (len1!=-1);

return str;
}

public static void main(String[] args)
{
StrC sc=new StrC();
String result=sc.chang(str,"<![CDATA",">"," "," ");
System.out.println(result);
}
}
[解决办法]

Java code
        String str = "<root id= 'tt ' > <![CDATA[111      3333]] > <root >" +                "          <basisInfo > <![CDATA[222      4444]] > ";                Pattern p = Pattern.compile("(.*?<\\!\\[CDATA)(.*?\\] >)");        Matcher m = p.matcher(str);                String rtn ="";        while(m.find()){            rtn += m.group(1) +                 m.group(2).replaceAll("\\s", " ");        }        System.out.println(rtn); 

读书人网 >J2SE开发

热点推荐