如何检索TextView(或EditText)中的所有链接?

时间:2015-03-16 01:55:58

标签: java android

我想检索一个代表Strings内的链接的TextView数组。

我知道我可以使用正则表达式,但考虑到Android SDK提供Linkify,可能会有更简单的方法。

String[] links = textView.getLinks(); // Something like this.

例如,如果textView中的文本是......

"昨天我去了google.com,经过一些搜索,我把它带到了facebook.com。"

我想检索一个值为["google.com", "facebook.com"]的数组。

1 个答案:

答案 0 :(得分:0)

我认为你在没有正则表达式的情况下很难做到这一点,因为你正在寻找具有混合输入的TextView。快速谷歌搜索为我提供了这个URL的正则表达式:

^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$

也许尝试这样的事情。

String userInput; //use a for loop to get each word from your textView and check each one.
String urlRegex = "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$"
Pattern p = Pattern.compile(urlRegex);
Matcher m = p.matcher(userInput);
boolean b = m.matches();

如果userInput是输入文本中的随机单词,则b将为false,但如果您逐个解析所有单词,则每个URL都应为b生成值true。