簡體   English   中英

轉義PHP中的正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM