我有這樣的正則表達式:Python正則表達式一次 - 匹配的網址
re.compile(r"((https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)", re.MULTILINE|re.UNICODE)
但是,這並不包括hashbangs (#!)
。我需要改變什麼才能讓它工作?我知道我可以補充!與#@%
等組,但這將選擇類似
Check this out: http://example.com/something/!!!
我想避免這種情況。
的例子如何檢查出RFC的URI語法(http://www.ietf.org/rfc/rfc3986.txt)?它會告訴你,爆炸只能以某種方式使用,否則它必須逃脫。好問題。 –
我希望你沒有試圖使用這個正則表達式來匹配瀏覽器所請求的URL:如果是這樣,你應該認識到哈希後的部分不是在普通的客戶端請求中發送的。 –
不。我正在解析用戶輸入,併爲用戶建立更短,更安全的鏈接(我們完全控制,我們可以阻止鏈接,域等)。而原始的正則表達式有http://ourshortdomain.foo/urlhash/#!/twitter/something;) – ThomK