Php 双引号中字符串的正则表达式不起作用?

Php 双引号中字符串的正则表达式不起作用?,php,regex,file,csv,explode,Php,Regex,File,Csv,Explode,我正在尝试使用此regexp将所有字符串包装为双引号: "(?:[^"\\]|\\.)*" 我已经在这个网站上尝试过了:它确实有效,但是当我把它放在我的php代码中时,就像这样: if( preg_match('/"(?:[^"\\]|\\.)*"/', $input_line, $output_array) ) { . . . } if( preg_match('/"(?:[^"\\\]|\\.)*"/', $sLine, $matches) ){ . . . } 我得到了这个错误: W

我正在尝试使用此regexp将所有字符串包装为双引号:

"(?:[^"\\]|\\.)*"
我已经在这个网站上尝试过了:它确实有效,但是当我把它放在我的php代码中时,就像这样:

if( preg_match('/"(?:[^"\\]|\\.)*"/', $input_line, $output_array) )
{
.
.
.
}
if( preg_match('/"(?:[^"\\\]|\\.)*"/', $sLine, $matches) ){
.
.
.
}
我得到了这个错误:

Warning:  preg_match(): Compilation failed: missing terminating ] for character class at offset 15
我错过了什么

已解决:

正如mario所指出的,PHP正在转义一个反斜杠,我让它这样工作:

if( preg_match('/"(?:[^"\\]|\\.)*"/', $input_line, $output_array) )
{
.
.
.
}
if( preg_match('/"(?:[^"\\\]|\\.)*"/', $sLine, $matches) ){
.
.
.
}

在PHP中定义正则表达式最可靠的方法如下:

$regex = <<<'REGEX'
/"(?:[^"\\]|\\.)*"/
REGEX;

$regex=在PHP中定义regex最可靠的方法如下:

$regex = <<<'REGEX'
/"(?:[^"\\]|\\.)*"/
REGEX;

$regex=在PHP中定义regex最可靠的方法如下:

$regex = <<<'REGEX'
/"(?:[^"\\]|\\.)*"/
REGEX;

$regex=在PHP中定义regex最可靠的方法如下:

$regex = <<<'REGEX'
/"(?:[^"\\]|\\.)*"/
REGEX;

$regex=反斜杠在PHP双引号或单引号字符串上下文中自动转义
preg_match
]
之前只会看到一个反斜杠。另请参见:非常感谢@mario,我花了几个小时试图解决这个问题,终于让它工作了:d反斜杠在PHP双引号或单引号字符串上下文中自动转义
preg_match
]
之前只会看到一个反斜杠。另请参见:非常感谢@mario,我花了几个小时试图解决这个问题,终于让它工作了:d反斜杠在PHP双引号或单引号字符串上下文中自动转义
preg_match
]
之前只会看到一个反斜杠。另请参见:非常感谢@mario,我花了几个小时试图解决这个问题,终于让它工作了:d反斜杠在PHP双引号或单引号字符串上下文中自动转义
preg_match
]
之前只会看到一个反斜杠。另请参见:非常感谢@mario,我花了几个小时试图解决这个问题,终于让它工作了:D