我正在尝试转义PHP中的PCRE以在脚本中使用。由于某种原因,我无法让它在转义时运行,只有当 REGEX 作为表单输入给出时,我才设法让它工作。
我正在使用的正则表达式是:
$pattern = '£((http|ftp|https):'/'/)?(['w'-_]+(?:(?:'.['w'-_]+)+))(['w'-'.,@?^=%&:/~'+#]*['w'-'@?^=%&/~'+#])?£';
到目前为止,我已经尝试过:
preg_quote():将正则表达式转换为以下内容并抛出错误:£((http''|ftp''|https):''/''/)''?([''w''-_]+(''?:(''?:''.[''w''-_]+)+))([''w''-''.,@''?''^''=%&:/~''+#]*[''w''-''@''?''^''=%&/~''+#])''?
htmlentities(): 给出错误: 警告: preg_match(): 未知修饰符 'a'
添加斜杠():同上
3 的混合物:同上
有人知道我做错了什么吗?
井号是这里的问题,将其替换为感叹号解决了问题。工作表达式:
$pattern = '!((http|ftp|https):'/'/)?(['w'-_]+(?:(?:'.['w'-_]+)+))(['w'-'.,@?^=%&:/~'+#]*['w'-'@?^=%&/~'+#])?!';
由于某种原因,这在没有转义功能的情况下工作正常。