链接多个URL,模式匹配器

时间:2018-08-17 20:57:20

标签: android html regex pattern-matching matcher

我不知道如何处理一条消息中的多个URL。这些网址可以各种格式传递

www.google.com    

https://www.google.com   

<a href = www.google.com>GOOGLE</a> 

<a href = "https://www.google.com">GOOGLE</a>

我正在尝试使用模式和匹配器,但是find()方法无法识别我是否已经替换了字符串的子字符串。你们能看看我的逻辑并给我一些建议吗?

谢谢

下面的代码:

  String link = url;
            if (!html.contains("@" + url) && !html.contains(url + "@")) {
                if (!(link.contains("http:") || link.contains("https:"))) {
                    link = "https://" + url;
                }
                String href = "<a href=\"" + link.toLowerCase() + "\">";

                String begin = href;
                String end = "</a>";

                Pattern pattern = Pattern.compile("<a href(\\s?)*=(\\s?)*\"(\\s?)*(.?)*www.(.)*\"[^>]*>.*</a>");
                Matcher matcher = pattern.matcher(html);
                if (!matcher.find()) {
                        html = html.replace(matcherUrl.group(), begin + link + end);
                    } else {
                        html = html.replace(matcherUrl.group(), link);
                    }
                }
            }
        }
        return html;

字符串html是一条完整的消息。...例如

        val html = "HTML-Http: <a href = \"https://www.google.com\">GOOGLE</a> \n
 HTML-noHttp: <a href = \"www.google.com\">GOOGLE</a> \n
 URL-http: https://www.google.com \n
 URL-noHttp: www.google.com"

0 个答案:

没有答案