2014-05-02 38 views
-4

找到URL你如何修改下面的正則表達式?定期對Java的String

http://www.website.com 
https://www.website.com 
www.website.com 
website.com 
http://website.com 
https://website.com 

編輯: 還有一堆已經提出瞭解決問題的方法的。我可以列出其中一些:

不過,雖然我想所有的人太多,他們都沒有提出解釋如何和爲什麼表達的作品。因此,無論何時出現故障(對於我而言,website.comhttp://website.com形式的網址都發生故障),新手(如我)很難應用任何修改或瞭解發生了什麼事情失敗。 一個很好的解釋解決方案總是比其他人所做的,並在接下來的時間不可複製的解決方案更好=)

+0

爲什麼我會得到這麼多downvotes?我的意思是:我尋找與此主題相關的其他問題,但他們都沒有提供功能正常的解決方案......如果您認爲這不是一個好問題,您應該要求關閉它:) – Eleanore

+0

我們希望看到努力。如果你已經完成了研究,展示並解釋它爲什麼不能幫助你。 –

回答

3

鑑於你的網站列表,下面的正則表達式會做的伎倆:

(https?://)?(www\.)?\w+\.com

Demo

+0

我知道你得到的感覺,當upvotes達到20 upvotes後不計數lol –

+0

@AmitJoki,是啊...... – sshashank124

+0

@DavidWallace,謝謝,更正了答案。當我複製時,/ g可能會錯誤地標記出來。來自regex101.com – sshashank124

0

嘗試這一個,它工作正常。測試您的所有網址!

private static final String URL_PATTERN = "(@)?(href=')?(HREF=')?(HREF=\")?(href=\")?(http://)?(https://)?" + 
     "[a-zA-Z_0-9\\-]+(\\.\\w[a-zA-Z_0-9\\-]+)+(/[#&\\n\\-=?\\+\\%/\\.\\w]+)?"; 

private Pattern urlPattern =Pattern.compile(URL_PATTERN); 

public boolean isURL(String url) 
{ 
    boolean mat = urlPattern.matcher(url.trim().replace(" ","")).matches(); 
    return urlPattern.matcher(url.replace(" ","")).matches(); 
}