我想检索一个代表Strings
内的链接的TextView
数组。
我知道我可以使用正则表达式,但考虑到Android SDK提供Linkify
,可能会有更简单的方法。
String[] links = textView.getLinks(); // Something like this.
例如,如果textView中的文本是......
"昨天我去了google.com,经过一些搜索,我把它带到了facebook.com。"
我想检索一个值为["google.com", "facebook.com"]
的数组。
答案 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。