2017-02-25 94 views
0

了用於提取網址我使用這個表達式:添加 - >作爲分隔符URL模式

'/https?\:\/\/[^\",\s\]\|]+/i' 

(飾面與空間」,逗號或|)

的問題是我還需要添加「-->(3個符號-->)作爲URL的休息。但沒有運氣。

PS我知道這是不是一個完美的URL驗證然而URL存儲在字符串中的數據庫和空間,逗號「,|和 - >絕對是URL的分隔符(如果在最後遇到)。

+0

我的建議是增加一個模式,包括一切,如'模式 - >(。*?)'和preg_match函數,你可以選擇第一個,但第二個,所以這將工作,我猜。 –

回答

1

的以下正則表達式應該這樣做:

https?:\/\/.*?(?=\s|,|"|\||-->|$) 

demo

+0

對不起,但http://www.example.com/img/ri/3742-17測試不通過,因爲它削減了短劃線的位置。抱歉。 – Haradzieniec

+1

@Haradzieniec檢查更新的答案。現在它應該工作:) – m87

1

要停止多字符分隔符,圖案是重複提前1個字符,直到找到在先行的分隔符:

(?:(?!delimiter).)* 

你的情況:

https?://(?:(?!-->)[^",\]\s|])+