ホームページ >バックエンド開発 >PHPチュートリアル >PHP正規表現でエスケープされた引用符を無視するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。