未必是正则表达式String parse(String org){ StringBuffer sbf=new StringBuffer("<a href=\"http://www.sina.com.cn/bin/chat.cgi&");
int pos=org.indexOf(']');
String urlid=org.substring(6,pos);
String text=org.substring(pos+1,org.length()-6);
sbf.append(urlid);
sbf.append("\">");
sbf.append(text);
sbf.append("</a>");
return new String(sbf);
int pos=org.indexOf(']');
String urlid=org.substring(6,pos);
String text=org.substring(pos+1,org.length()-6);
sbf.append(urlid);
sbf.append("\">");
sbf.append(text);
sbf.append("</a>");
return new String(sbf);
url2="http://www.csdn.net/aa.cgi"urlp换成url1,urlm或成url2,所以我想用正则表达式
{
public static void main(String[] args)
{
String str = "[urlp id=100]你好[/url]";
str = str.replaceAll( "\\[urlp\\s+([^\\]]*)\\](.*)\\[/url\\]", "<a href=\"http://www.sina.com.cn/bin/chat.cgi&$1\">$2</a>");
System.out.println( str );
}
}
to wolfsquare(狼平方) :
过奖过奖了,觉得有意思,喜欢写而已
replaceAll(urlp,url1);
replaceAll(urlm,url2);
多谢,刚试了一下还是有些问题
1.如果字串里有几个[urlp id=9393]你好[/url],好象只能替换第一个
2.如果有字串里还有urlm的,用url2替换的urlm,用url1替换urlp,正则表达式能行吗? url1="http://wwwsina.com/chat.cgi
url2="http://www.csdn.net/aa.cgi"
多谢,刚试了一下还是有些问题
1.如果字串里有几个[urlp id=9393]你好[/url],好象只能替换第一个
2.如果有字串里还有urlm的,用url2替换的urlm,用url1替换urlp,正则表达式能行吗? url1="http://wwwsina.com/chat.cgi
url2="http://www.csdn.net/aa.cgi"
改进了一下
再试试看public class CharTest
{
public static void main(String[] args)
{
String str = "[urlp id=100]你好[/url][urlp id=110]dddddddd[/url][urlm mm=44]bbb[/url]";
str = str.replaceAll( "\\[urlp\\s+([^\\]]*)\\]([^\\]]*)\\[/url\\]", "<a href=\"http://www.sina.com.cn/bin/chat.cgi&$1\">$2</a>");
str = str.replaceAll( "\\[urlm\\s+([^\\]]*)\\]([^\\]]*)\\[/url\\]", "<a href=\"url2=\"http://www.csdn.net/aa.cgi&$1\">$2</a>");
System.out.println( str );
}
}
import java.util.regex.*; //jdk1.4 or higherpublic class ReplaceURL {
public ReplaceURL() {
} public static void main(String[] argv) {
String urlString = "[urlp id=199]新浪[/url]ksdkfaksfkasdfkasdfkl[urlm mm=44]csdn[/url]kdskasdf";
HashMap urls = new HashMap();
urls.put("[urlp ", "<a href=\"http://www.sina.com/chat.cgi&");
urls.put("[urlm ", "<a href=\"http://www.csdn.net/aa.cgi&");
urls.put("]", "\">");
urls.put("[/url]", "</a>");
Pattern p = Pattern.compile("(\\[url.\\s)|\\]|\\[/url\\]");
Matcher m = p.matcher(urlString);
StringBuffer result = new StringBuffer();
while(m.find()) {
m.appendReplacement(result, (String)urls.get(m.group()));
}
System.out.println(result);
}
}
因为对regex比较感兴趣,所以写一个玩玩,楼主瞧瞧
System.out.println(result);