0
處理用戶輸入,以超鏈接時,我使用正則表達式和PHP的preg_replace函數使用這段代碼來的生活忽略{{ }}
包裹的所有鏈接,因此,例如,該輸入應該由正則表達式進行處理:落後消極
http://www.example.com/
該輸入應該被忽略:
{{http://www.example.com/}}
如何更改我的正則表達式以按預期工作?
處理用戶輸入,以超鏈接時,我使用正則表達式和PHP的preg_replace函數使用這段代碼來的生活忽略{{ }}
包裹的所有鏈接,因此,例如,該輸入應該由正則表達式進行處理:落後消極
http://www.example.com/
該輸入應該被忽略:
{{http://www.example.com/}}
如何更改我的正則表達式以按預期工作?
帶有負回顧後((?<!...)
)和負前瞻((?!...)
)環繞你的正則表達式:
'/(?<!\{\{)(((f|ht)tp:\/\/)[-a-zа-я()[email protected]:%_+.~#?&;\/=]+)(?!\}\})/i'
或者,只是去通過字的文詞,並嘗試看看一個字是一個有效的使用URL解析庫的URL(URL中不能有空格);並只在這種情況下更換。
邊緣情況如何? '{{http:// link'和'http:// link}}' –
那些會匹配,是的,現在會有什麼類型的... – fge
那麼完整的代碼行是什麼?我以''!''開頭嗎? –