ホームページ >バックエンド開発 >PHPチュートリアル >PHP正規表現でエスケープされた引用符を無視するにはどうすればよいですか?

PHP正規表現でエスケープされた引用符を無視するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-28 17:29:11537ブラウズ

How to Ignore Escaped Quotes in PHP Regex?

PHP で引用符内のエスケープされた引用符を無視する正規表現

PHP では、多くの場合、エスケープされた引用符を含む文字列を解析して操作する必要があります。一重引用符と二重引用符内の文字列の一致に使用される既存の正規表現では、エスケープされた引用符が無視されない場合があり、予期しない結果が生じる可能性があります。

解決策:

エスケープされた引用符を無視するには引用符内では、次の正規表現を使用できます:

Double引用符:

$re_dq = '/"[^"\\]*(?:\\.[^"\\]*)*"/s';

単一引用符:

$re_sq = "/'[^'\\]*(?:\\.[^'\\]*)*'/s";

これらの正規表現は、Jeffrey Friedl の著書『Mastering Regular Expressions』で概説された原則に従っています。これらにより、引用符を含むエスケープ文字のマッチングが可能になります。

一重引用符と二重引用符を置き換えるために推奨される PHP コードは次のとおりです。

$code = preg_replace_callback( $re_dq, array( &$this, '_getPHPString' ), $code );

$code = preg_replace_callback( $re_sq, array( &$this, '_getPHPString' ), $code );

以上がPHP正規表現でエスケープされた引用符を無視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。