2014-07-16 21 views
0

當我的客戶端鍵入一個帶有URL的句子時,我想從我的URL正則表達式檢測器中排除常見的標點符號。一個常見的場景將是URL example.com?q=this(這顯然需要包括?)與句子說正則表達式捕獲所有的事件,但最後的某些字符

你認爲example.com的是什麼?

這個表達式適合我的需求就好了:

(?:https?\:\/\/)?(?:\w+\.)+\w{2,}(?:[?#/]\S*)?

然而,包括在年底所有標點符號,所以我通過每場比賽迭代找到並使用此捕獲組排除說標點:

(.*?)[?,!.;:]+$

不過,我不知道如何掃描時,利用該技術「字符串的結束」可能有多個URL的整個文本塊。希望能夠在沒有額外工作的情況下從一開始就捕捉正確的街區。

回答

0

在標點符號後面只需要非空白字符而不是可選的。

(?:https?\:\/\/)?(?:\w+\.)+\w{2,}(?:[?#\/]\S+)? 

你當然會失去像example.com/網址的有效的結束將成爲example.com,但據我所知是沒有區別的。

+0

這仍然捕獲尾隨標點符號。它適用於'example.com?',但不適用於'example.com?a = foo?' – dooleyo

相關問題