【发布时间】:2014-04-28 21:37:31
【问题描述】:
所以引用字符串的正则表达式已经被一遍又一遍地解决了。在这里看到一个很好的答案:https://stackoverflow.com/a/5696141/692331
$re_dq = '/"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"/s';
似乎是 PHP 的标准解决方案。
我的问题是我的引用被另一个引用转义了。示例:
="123 4556 789 ""Product B v.24"""
="00 00 F0 FF ""Licence key for blah blah"" hfd.34"
=""
前面的字符串应分别与以下内容匹配:
string '123 4556 789 ""Product B v.24""' (length=31)
string '00 00 F0 FF ""Licence key for blah blah"" hfd.34' (length=48)
string '' (length=0)
给出的示例只是说明字符串的外观,而不是我要匹配的实际字符串,可能有数万个。
我需要一个匹配双引号字符串的正则表达式模式,该字符串可能包含也可能不包含两个双引号的序列。
2014 年 5 月 5 日更新:
【问题讨论】:
-
是否要将
Licence key for blah blah作为单独的匹配组? -
不,每一行应该是一个组
-
你不能用
''替换'""',然后只获取所有引用的字符串吗? -
如果在单引号内使用双引号,则不需要转义,例如:
preg_match('/"123 4556 789 ""Product B v\.24"""/', $subject) -
@anubhava 你没有错过任何 OP 的内容,一个明确的问题。
标签: php regex double-quotes