Php 不接受管道字符(|)作为正则表达式的一部分

Php 不接受管道字符(|)作为正则表达式的一部分,php,regex,Php,Regex,正则表达式php不接受(“|”), 这是我的$pattern='/(img | src)=(“|”)[^“>]+/i'; 我怎样才能避开(“|”)问题。您可以尝试以下方法: $pattern='/(img | src)=(“\\|')[^“>]+/i' 您可以尝试以下方法: $pattern='/(img | src)=(“\\|')[^“>]+/i' 我认为问题在于“模式内部”的引用。您的模式是在单引号之间定义的,因此您必须转义模式的单引号部分。 试试这个: $pattern = '/(img

正则表达式php不接受
(“|”),

这是我的
$pattern='/(img | src)=(“|”)[^“>]+/i';

我怎样才能避开
(“|”)
问题。

您可以尝试以下方法:

$pattern='/(img | src)=(“\\|')[^“>]+/i'

您可以尝试以下方法:

$pattern='/(img | src)=(“\\|')[^“>]+/i'


我认为问题在于“模式内部”的引用。您的模式是在单引号之间定义的,因此您必须转义模式的单引号部分。 试试这个:

$pattern = '/(img|src)=("|\')[^"\'>]+/i';

我认为问题在于“模式内部”的引用。您的模式是在单引号之间定义的,因此您必须转义模式的单引号部分。 试试这个:

$pattern = '/(img|src)=("|\')[^"\'>]+/i';

带反斜杠的转义特殊(+.[]等)字符带反斜杠的转义特殊(+.[]等)字符谢谢你,Bgi,它真的对我有用。非常感谢你的帮助/谢谢你,Bgi,这对我真的很有用。非常感谢你的帮助/