2014-01-21 39 views
1

我正在爲Twitch.tv工作的IRC-BotJava過濾URL的字符串?

我剛遇到一個問題。

我想過濾一個URL的字符串,然後超時在聊天中寫入URL的用戶。 在谷歌搜索我發現,我應該使用正則表達式,但我不明白如何做到這一點。

從另一個問題來看,我發現使用的正則表達式是;

​​3210

可以some1給我任何關於如何使用正則表達式來過濾未知網址的字符串的例子嗎?

它應該檢測像東西;

http://www.google.com 
www.google.com 
google.com 

任何幫助apreaciated和我的英語不好= p對不起

+0

在這裏你去:http://docs.oracle.com/javase/tutorial/essential/regex/ –

+0

玩這個一會兒http://regexpal.com/ – Gustavo

回答

0

你可以這樣來做:

String regex = "([a-zA-Z\d]+://)?(\w+:\[email protected])?([a-zA-Z\d.-]+\.[A-Za-z]{2,4})(:\d+)?(/.*)?"; 
Pattern p = Pattern.compile(regex); 

// testedString是人寫的消息,並要檢查URL模式

Matcher m = p.matcher(testedString); 
    if (m.find()) { 
     // timout the user who inserted the URL 
    } 

順便提及,與正則表達式檢測字符串更多的例子是here

而且我提高你的URL模式,現在它可以識別所有普通URL字符串

0

包含的是正則表達式只匹配非常囉嗦的URL。開頭:

[a-zA-Z\d]+:// 

是匹配的一個或多個(這是+)大寫或小寫的字母或數字的(這是在括號中的部分),接着是「://」。也就是說,它匹配以「http://」或「ftp://」或其他內容開頭的URL。如果字符串不是以那個開頭的,那麼它將不匹配。

在一般情況下匹配URL是非常棘手的。你無法真正地分辨出一個字符串之間的區別,比如「對於大交易去 - > dealz.biz」和「哈哈,這很搞笑,你自己想出來嗎?」我認爲嘗試基於URL自動禁止是一個不好的主意。