Java/Android正则表达式测试字符串中是否有链接
我有这个模式,我想测试我的字符串中是否有链接。 我想在Java/Android正则表达式测试字符串中是否有链接,java,android,Java,Android,我有这个模式,我想测试我的字符串中是否有链接。 我想在TextView中链接这些文本 当链接包含&字符时,代码不起作用 完整代码: Pattern.compile("((http\\://|https\\://|ftp\\://|sftp\\://)|(www.))+((\\S+):(\\S+)@)?+(([a-zA-Z0-9\\.-]+\\.[a-zA-Z]{2,4})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(/[a-zA-Z0
TextView
中链接这些文本
当链接包含&
字符时,代码不起作用
完整代码:
Pattern.compile("((http\\://|https\\://|ftp\\://|sftp\\://)|(www.))+((\\S+):(\\S+)@)?+(([a-zA-Z0-9\\.-]+\\.[a-zA-Z]{2,4})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\\?\\.'~]*)?");
我认为这比使用正则表达式更干净:
Pattern httpMatcher = Pattern.compile("((http\\://|https\\://|ftp\\://|sftp\\://)|(www.))+((\\S+):(\\S+)@)?+(([a-zA-Z0-9\\.-]+\\.[a-zA-Z]{2,4})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\\?\\.'~]*)?");
String httpViewURL = "myhttp://";
Linkify.addLinks(label, httpMatcher, httpViewURL);
我认为这比使用正则表达式更干净:
Pattern httpMatcher = Pattern.compile("((http\\://|https\\://|ftp\\://|sftp\\://)|(www.))+((\\S+):(\\S+)@)?+(([a-zA-Z0-9\\.-]+\\.[a-zA-Z]{2,4})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\\?\\.'~]*)?");
String httpViewURL = "myhttp://";
Linkify.addLinks(label, httpMatcher, httpViewURL);
您可以使用
模式。WEB\u URL
:
boolean isLink(String s) {
try {
new URL(s);
return true;
} catch (MalformedURLException e) {
return false;
}
}
请注意,
模式
类仅在API级别8后可用,但您可以在此处获取其源代码您可以使用模式。WEB\u URL
:
boolean isLink(String s) {
try {
new URL(s);
return true;
} catch (MalformedURLException e) {
return false;
}
}
请注意,Patterns
类仅在API级别8之后可用,但您可以在此处获取其源代码
现在可以用了,谢谢
现在可以用了,谢谢不行吗?什么不起作用?如果你想让我们帮你,你最好把所有细节都告诉我们。不行吗?什么不起作用?如果你想让我们帮助你,你最好告诉我们所有的细节。在这种情况下,我不得不使用模式,对不起。因为我想在文本视图中链接这些文本,所以在这种情况下我必须使用模式,对不起。因为我想在文本视图中链接这些文本