ホームページ > バックエンド開発 > PHPチュートリアル > エスケープされた引用符を無視して、PHP で引用符で囲まれた文字列を効率的に照合するにはどうすればよいですか?

エスケープされた引用符を無視して、PHP で引用符で囲まれた文字列を効率的に照合するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-29 13:01:10
オリジナル
779 人が閲覧しました

How Can I Efficiently Match Quoted Strings in PHP, Ignoring Escaped Quotes?

PHP: 引用符内のエスケープ引用符を無視して文字列を照合する

一重引用符 (') と二重引用符 (") の両方で囲まれた文字列を照合するには、次の通常のコマンドを使用できます式:

<br>$code = preg_replace_callback( '/"(.*?)"/', array( &$this, '_getPHPString' ), $code );</p>
<p>$code = preg_replace_callback( "#'(.*?)'#", array( &$this, '_getPHPString' ), $code );<br>

ただし、これらの式では文字列内のエスケープされた引用符は考慮されません。エスケープされた引用符を無視するには、次のようにします。より洗練された正規表現:

Good (ただし非効率):

<br>"(<sup><a href="//m.sbmmt.com/link/d58f36f7679f85784d8b010ff248f898" rel="nofollow" target="_blank">1</a></sup>|.)*"<br>

より良い (特別な機能を使用するとより効率的)量子):

<br>"(<sup><a href="//m.sbmmt.com/link/960fe54b16d890a75e845fcd23afc32d" rel="nofollow" target="_blank">2</a></sup> |.)*"<br>

最高 (展開された状態で最も効率的)ループ):


3(?: .4)*

これら改良された式により、それぞれの引用符で囲まれた文字列内でエスケープされた引用符 (' と ") を無視できるようになります。 PHP 構文の場合は、次を使用します:

<br>$re_dq = '/"<sup><a href="//m.sbmmt.com/link/b594f8f8fcc3cc7910e2dcd4269a2e95" rel="nofollow" target="_blank">5</a></sup><em>(?:\.<sup><a href="//m.sbmmt.com/link/096ce33c96792e289516407eb29b62bb" rel="nofollow" target="_blank">6</a></sup></em>)*"/s';<br> $re_sq = "/'<sup><a href="//m.sbmmt.com/link/57947ed4d4130c7ff0a057c8654dd1a3" rel="nofollow" target="_blank">7</a></sup><em>(?:\.<sup><a href="//m.sbmmt.com/link/7835a9ef21ac8378a23835829594d598" rel="nofollow" target="_blank">8</a></sup></em>)*'/s";<br> 

これらの正規表現は、次のような場合でも、文字列の正確かつ効率的なマッチングを提供します。エスケープされた引用符を処理します。


  1. "
  2. "
  3. "
  4. "\
  5. "\
  6. '\
  7. '\

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート