首页 >后端开发 >php教程 >如何忽略 PHP 正则表达式中的转义引号?

如何忽略 PHP 正则表达式中的转义引号?

Patricia Arquette
Patricia Arquette原创
2024-11-28 17:29:11524浏览

How to Ignore Escaped Quotes in PHP Regex?

正则表达式忽略 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn