2011-11-27 88 views
0

我發現約翰·格魯伯的正則表達式的URL由用戶GianPac匹配in this post,其中指出它已經適用於識別URL沒有協議或WWW部分的更新版本:格魯伯URL正則表達式調整捕捉到「domain.com」

\ b((:[AZ] [\ W - ] +:(:(Ⅰ')?/ {1,3} | [A-Z0-9%])| WWW \ d {0,3} [。 ] | [a-z0-9 .-] + [。] [az] {2,4} /?)(?:[^ \ s()<>] + |(([^ \ s()<> ] + |(([^ \ s()<>] +)))))(?:(([^ \ s()<>] + |(([^ \ s()<>)+)) ))| [^ \ s`!()[] {};:'',。<>?不匹配「google.com」。它確實匹配「google.comm」「google.co.uk」,所以這必須是一個小疏忽。

問題是,我真的討厭正則表達式。這是我生命中的禍根。我只是想嘗試再調整一次,以允許「google.com」 - 任何人都可以給我一個指針?我認爲這是與這部分代碼有關:

+[.][a-z]{2,4}/?) 

回答

1

將它從{2,4}更改爲{1,4},它將匹配。

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.-]+[.][a-z]{1,4}/?)(?:[^\s()<>]+|(([^\s()<>]+|(([^\s()<>]+)))))(?:(([^\s()<>]+|(([^\s()<>]+))))|[^\s`!()[]{};:'\".,<>?«»「」‘’])) 

它仍然是完全不可理解,雖然,我不知道我會相信一個正則表達式的URL檢查不符合google.com以開始!大多數語言都內置了用於解析URL的內容,如果可能的話,這是更好的選擇。

+0

是的,謝謝你 - 你是對的。我只是發佈這個答案:) – mootymoots