日期:2014-05-17  浏览次数:20727 次

请教一个问题 如何获取一个字符串中的所有连接?
RT

我现在有一个字符串

String str = "http://community.csdn.net dfsdfsadfsa www.google.com asdfsdfasdfsadf";

现在我想获取 http://community.csdn.net 和 www.google.com 

说明一下我的意图:

从数据库中获取到一个字符串 该字符串中会包含连接 http://community.csdn.net

我想在html显示为 <a href="http://community.csdn.net">http://community.csdn.net</a>这样

不知道我这样描述大家是否明白?

小弟刚接触程序不久

希望哪个高手帮我解决下..

------解决方案--------------------
我试了啊,jsp没什么问题。jsp里代码如下
Java code

<%@page import="java.util.regex.Pattern"%>
<%@page import="java.util.regex.Matcher"%>

??
    <%!
        //正规表达
      private static final Pattern GREEDY_URL_MATCH_PATTERN = Pattern.compile("(http\\://|https\\://|www\\.){1}([^\\x00-\\x20()\"<>\\x7F-\\xFF])*(\\.com|\\.net|\\.cn|\\.org)", Pattern.CASE_INSENSITIVE);

      //URL取出
      private List<String> findURL(Pattern pattern, String text){
        List<String> list = new ArrayList<String>();
        Matcher matcher = pattern.matcher(text);
        while(matcher.find()){
          list.add(matcher.group());
        }
        return list;
      }

      //获取转换Link后的字符串
      public String convertToAnchorStr(String str) {
        List<String> urlLst = findURL(GREEDY_URL_MATCH_PATTERN, str);
        for (String url:urlLst) {
            String a = "<a href='" + url + "'>" + url + "</a>";
            str = str.replace(url, a);
        }

        return str;

      }
    %>

    <%
            String text1 = "http://community.csdn.net dfsdfsadfsa www.google.com asdfsdfasdfsadf";
            String text2 = "sssssssssssssssshttp://www.baidu.comsadf,sfsdafCSDN";

            out.println(convertToAnchorStr(text1) + "</br>");
            out.println(convertToAnchorStr(text2));
    %>