2014-01-18 100 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

相關問題