- Java code
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#@。,:;!?])";