java 将字符串中的网络连接加上超链接

public static String regexURL(String str){

// String url="\\s*((http(s)?://)|(ftp://)|())\\w+(\\.\\w+)+((:\\d{1,5})|)(/\\w*)*(/\\w+\\.(\\w+|))?([\\w- ./?%&=]*)?";

 //String url2="((http|https|ftp)\\://)?([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/[^/][a-zA-Z0-9\\.\\,\\?\\'\\/\\+&%\\$#\\=~_\\-@]*)*";

    //String url3="((http|https|ftp)\\://)?([a-zA-Z0-9\\.\\-]+(\\:[a-zA-Z0-9\\.&%\\$\\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\\:[0-9]+)*(/($|[a-zA-Z0-9\\.\\,\\?\\'\\\\+&%\\$#\\=~_\\-]+))*";

      String regex="((http|ftp|https)://)?"

        + "(([a-zA-Z0-9\\._-]+\\."

        + "[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\\."

        + "[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\\&%_\\./-~-]*)?";

Pattern imgPattern = Pattern.compile(regex);

Matcher imgMatcher = imgPattern.matcher(str);

while (imgMatcher.find()) {

if(!"PNG,JPG,GIF,JPEG,BMP".contains(imgMatcher.group().substring(imgMatcher.group().lastIndexOf(".")+1).toUpperCase())){//排除内容中的表情或者图片

if(null!=imgMatcher.group()&&!imgMatcher.group().startsWith("http")){

str = str.replace(imgMatcher.group(),""+imgMatcher.group()+"");

}else{

str = str.replace(imgMatcher.group(),""+imgMatcher.group()+"");

}

}

}

    return str;

    }

猜你喜欢

转载自youyuhehe.iteye.com/blog/2215854
今日推荐