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