日期:2014-05-20  浏览次数:20796 次

java 正则表达式 新浪微博@加链接

public static void main(String[] args) {
        //String reg="@^(\\.|\\,|:|;|!|\\?|\\s|#|@|。|,|:|;|!|?)*";
        String reg="@[^\\.^\\,^:^;^!^\\?^\\s^#^@^。^,^:^;^!^?]+"; //以@开头以.,:等结束的字符串
        Pattern pattern=Pattern.compile(reg);
        System.out.println(pattern.toString());
        Matcher matcher=pattern.matcher("fsafaf加大@梵净山,金佛山@就佛网 杰弗里斯");
        StringBuffer sb=new StringBuffer();
        while(matcher.find()){
            System.out.println(matcher.group());
            matcher.appendReplacement(sb, "<a href='abc'>"+matcher.group()+"</a>");
        }
        matcher.appendTail(sb);
        System.out.println(sb);
    }

以上是我写的 要求像新浪微博一样只要输入的字符串中有@XXX就给加上链接 自己写了一个正则表达式 找出一个字符串中以@开头以句号或逗号或分号或空格等就给加上链接。感觉这个比较啰嗦有没有更简练点的写法,请指教。
------解决方案--------------------
 String reg="@.*?(?=[.,:;!?\\s#@。,:;!?])";