正则表达式:如何检测引号内的字符串,但包含转义引号?

时间:2013-03-24 21:04:22

标签: php regex

我有一个非常简单的任务,编写一个正则表达式,它会在引号内返回一个字符串:

"this is string"

...但也包含任何转义引号:

"this is \" also a string"

提前致谢!

1 个答案:

答案 0 :(得分:3)

首先,确保正则表达式是您真正想要的。他们有养成丑陋的习惯。

但如果你确定,这应该可以解决问题:

"((\\.|[^\\"])*)"

外括号只能使您无需引号即可获取字符串的内容。如果您不需要,可以使用"(\\.|[^\\"])*"

要将此发送给PHP,您可以使用带单引号的字符串(不会转义);

'"((\\.|[^\\"])*)"'

或者如果必须使用双引号,请根据需要对其进行转义:

"\"((\\\\.|[^\\\\\"])*)\""