2014-01-18 59 views
1

我需要检查字符串中是否有任何http链接,但我不知道如何执行此操作。我知道我可以检查一个链接的东西有效的HTTP链接像下面Java:正则表达式检查字符串中的http链接

boolean valid = myString.matches("^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); 

我看到它在这个post here,它的工作原理如果字符串只是链接,没有空格等字样,但我想一个正则表达式来检查句子,这可能还是不包含空格和多话的HTTP链接,我试了下:

boolean valid = s.matches(".*\\s+^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|].*$") 

但我不明白,我不真正了解不多的正则表达式,所以我会很感激任何帮助。

Thankz提前。

+0

[RegEx匹配打开标记,但XHTML自包含标记除外]的可能重复(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – Tdorno

+0

不,不是,正则表达式是完全不同的,我不想在源代码中提取任何html标签链接,而是纯文本中的任何语句中的http链接,这是相当不同的。 – J0t4

回答

1
.*(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|].*$ 

翻译: (任何字符)超链接(任何字符)

你可以用自己的一些字符串测试here

+0

优秀,它做到了。非常感谢你。 – J0t4

相关问题