Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich in PHP zitierte Zeichenfolgen effizient abgleichen und dabei maskierte Anführungszeichen ignorieren?

Wie kann ich in PHP zitierte Zeichenfolgen effizient abgleichen und dabei maskierte Anführungszeichen ignorieren?

Mary-Kate Olsen
Freigeben: 2024-11-29 13:01:10
Original
767 Leute haben es durchsucht

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

PHP: Übereinstimmung von Zeichenfolgen unter Ignorieren von Escape-Anführungszeichen innerhalb von Anführungszeichen

Zur Übereinstimmung von Zeichenfolgen, die sowohl in einfache (') als auch doppelte (") Anführungszeichen eingeschlossen sind können Sie die folgenden regulären Ausdrücke verwenden:

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

Diese Ausdrücke berücksichtigen jedoch keine maskierten Anführungszeichen innerhalb der Zeichenfolgen. Um maskierte Anführungszeichen zu ignorieren, können Sie ausgefeiltere reguläre Ausdrücke verwenden:

Gut (Aber Ineffizient):

<br>"(<sup><a href="https://www.php.cn/link/d58f36f7679f85784d8b010ff248f898" rel="nofollow" target="_blank">1</a></sup>|.)*"<br>

Besser (Effizienter mit Special Quantoren):

<br>"(<sup><a href="https://www.php.cn/link/960fe54b16d890a75e845fcd23afc32d" rel="nofollow" target="_blank">2</a></sup> |.)*"<br>

Am besten (Am effizientesten im ausgerollten Zustand Schleife):

<br><sup><a href="https://www.php.cn/link/84fec9a8e45846340fdf5c7c9f7ed66c" rel="nofollow" target="_blank">3</a></sup><em>(?:.<sup><a href="https://www.php.cn/link/9b1cab1b93285ce58e7c1dc576ff8a14" rel="nofollow" target="_blank">4</a></sup></em>)*<br>

Diese verbesserten Ausdrücke ermöglicht das Ignorieren von Escape-Anführungszeichen (' und ") in ihren jeweiligen Anführungszeichenfolgen. Verwenden Sie für die PHP-Syntax Folgendes:

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

Diese regulären Ausdrücke ermöglichen einen genauen und effizienten Abgleich von Zeichenfolgen, selbst wenn mit Escapezeichen gearbeitet wird Zitate.


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

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP zitierte Zeichenfolgen effizient abgleichen und dabei maskierte Anführungszeichen ignorieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage