引用符がエスケープされている場合でも、引用符の外にある正規表現インスタンスを照合するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-25 04:56:29
オリジナル
430 人が閲覧しました

How to Match Regex Instances Outside of Quotes, Even with Escaped Quotes?

引用符の外側の正規表現インスタンスの一致: 代替アプローチ

前の質問では、引用符の外側の正規表現のすべてのインスタンスを一致させることが提案されました。引用は不可能です。ただし、これは完全に正確というわけではありません。

この問題の解決策は、単語の後ろに偶数の引用符がある場合、その単語が引用符の外側にあると認識することです。これは先読みアサーションとしてモデル化できます:

\+(?=([^"]*"[^"]*")*[^"]*$)
ログイン後にコピー

ただし、これはエスケープされた引用符を考慮していません。これを処理するために、引用符の前にバックスラッシュがあった場合に次の文字を無視するように式が変更されます。

\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)
ログイン後にコピー

この複雑な式により、引用符内にない正規表現のすべてのインスタンスが、たとえエスケープされた引用符の存在。

.split() メソッドと .replace() メソッドの一般的な代替手段

この正規表現ソリューションはうまく機能しますが、すべてのメソッドに適しているわけではない可能性があります。特に .split() メソッドと .replace() メソッドを使用する場合。別のアプローチは、次の手順を使用することです。

  1. 引用符に基づいて文字列をセグメントに分割します。
  2. 引用符内にないセグメントに正規表現を適用します。
  3. 引用符が適切に配置されていることを確認しながら、セグメントを結合し直します。

このアプローチはより柔軟であり、より幅広いシナリオで使用できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!