未必是正则表达式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);

解决方案 »

  1.   

    实际上字符串有[urlp id=199]aaa[/url]ksdkfaksfkasdfkasdfkl[urlm mm=44]bbb[/url]kdskasdf[url]个数不定有两个连接,url1="http://wwwsina.com/chat.cgi“
               url2="http://www.csdn.net/aa.cgi"urlp换成url1,urlm或成url2,所以我想用正则表达式
      

  2.   

    除了正则表达式以外,用replace()也是可行的
      

  3.   

    嗯,刚刚写好一个,测试了一下,楼主看看还有什么问题public class CharTest 
    {
    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(狼平方) :
      过奖过奖了,觉得有意思,喜欢写而已
      

  4.   


    replaceAll(urlp,url1);
    replaceAll(urlm,url2);
      

  5.   

    to XKP
       多谢,刚试了一下还是有些问题
    1.如果字串里有几个[urlp id=9393]你好[/url],好象只能替换第一个
    2.如果有字串里还有urlm的,用url2替换的urlm,用url1替换urlp,正则表达式能行吗?           url1="http://wwwsina.com/chat.cgi
               url2="http://www.csdn.net/aa.cgi"
      

  6.   

    to XKP
       多谢,刚试了一下还是有些问题
    1.如果字串里有几个[urlp id=9393]你好[/url],好象只能替换第一个
    2.如果有字串里还有urlm的,用url2替换的urlm,用url1替换urlp,正则表达式能行吗?           url1="http://wwwsina.com/chat.cgi
               url2="http://www.csdn.net/aa.cgi"
      

  7.   

    OK
    改进了一下
    再试试看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 );
     
    }
    }
      

  8.   

    好用的,不过要匹配两次了,如果再加一个[urla][/url]是不是要匹配三次了,能用一个正则表达式就完全实现吗?当然这个比较难了[url p|m|a]...    如果是p<a href=...>如果实现不了也就算了多谢,昨天下午帮人装机器,忙了一下午,抱歉
      

  9.   

    import java.util.*;
    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比较感兴趣,所以写一个玩玩,楼主瞧瞧
      

  10.   

    漏了...while循环后要加东西m.appendTail(result);
    System.out.println(result);