[英]Escaping regular expressions in PHP
我正在嘗試在PHP中轉義PCRE,以便在腳本中使用。 由於某種原因,我無法使其在轉義時發揮作用,僅在將REGEX作為表單輸入提供時,我才設法使其起作用。
我正在使用的正則表達式是:
$pattern = '£((http|ftp|https):\/\/)?([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?£';
到目前為止,我已經嘗試過:
preg_quote():將正則表達式轉換為以下內容並引發錯誤:£((http \\ | ftp \\ | https):\\ / \\ /)\\?([[ww --_] +(\\ ?:(\\ ?:\\ [\\ W \\ -_] +)+))([\\ W \\ - \\,@ \\ \\ ^ \\ =%:/?〜\\ +#]。* [\\ W \\ - \\ @ \\ ?\\ ^ \\ =%/〜\\ +#])\\?£
htmlentities():給出錯誤:警告:preg_match():未知修飾符“ a”
Addslashes():與上面相同
3:與上述相同
有人知道我在做什么錯嗎?
此處是英鎊符號,將其替換為感嘆號即可解決此問題。 工作表達:
$pattern = '!((http|ftp|https):\/\/)?([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?!';
出於某種原因,它沒有轉義功能也可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.