正则表达式忽略 PHP 中引号内的转义引号
在 PHP 中,通常需要解析和操作包含转义引号的字符串。用于匹配单引号和双引号内的字符串的现有正则表达式可能不会忽略转义引号,这可能会导致意外结果。
解决方案:
忽略转义引号在引号内,我们可以使用以下正则表达式:
Double引号:
$re_dq = '/"[^"\\]*(?:\\.[^"\\]*)*"/s';
单引号:
$re_sq = "/'[^'\\]*(?:\\.[^'\\]*)*'/s";
这些正则表达式遵循 Jeffrey Friedl 在他的《掌握正则表达式》一书中概述的原则。它们允许匹配转义字符,包括引号。
替换单引号和双引号的推荐 PHP 代码是:
$code = preg_replace_callback( $re_dq, array( &$this, '_getPHPString' ), $code ); $code = preg_replace_callback( $re_sq, array( &$this, '_getPHPString' ), $code );
以上是如何忽略 PHP 正则表达式中的转义引号?的详细内容。更多信息请关注PHP中文网其他相关文章!