【发布时间】:2014-12-04 11:43:12
【问题描述】:
我试图在 PHP 中转义 PCRE 以便在脚本中使用。出于某种原因,当它被转义时我无法让它发挥作用,我只有在 REGEX 作为表单输入时才设法让它工作。
我使用的正则表达式是:
$pattern = '£((http|ftp|https):\/\/)?([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?£';
到目前为止我已经尝试过:
preg_quote():将正则表达式转换为以下内容并引发错误:£((http\|ftp\|https):\/\/)\?([\w\-_]+(\? :(\?:\.[\w\-_]+)+))([\w\-\.,@\?\^\=%&:/~\+#]*[\w\- \@\?\^\=%&/~\+#])\?£
htmlentities(): 给出错误: 警告: preg_match(): Unknown modifier 'a'
addslashes():同上
三者的混合:同上
有人知道我做错了什么吗?
【问题讨论】:
-
似乎您从其他地方复制粘贴正则表达式,并在复制时复制隐藏的垃圾字符,而不是“磅”符号,使用其他内容或使用键盘重新输入来解决问题
-
解决了!看起来英镑符号是问题所在,谢谢。我在考虑使用分隔符时遇到了一些麻烦,因为正则表达式使用了很多符号。
-
我更喜欢使用 / 或 !如下例所示。