ホームページ  >  記事  >  ウェブフロントエンド  >  引用符がエスケープされている場合でも、引用符の外にある正規表現インスタンスを照合するにはどうすればよいですか?

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-25 04:56:29431ブラウズ

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

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

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

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

\+(?=([^"]*"[^"]*")*[^"]*$)

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

\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)

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

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

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

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

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

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

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