Regex for Go でのネガティブ セットの実装
提供された正規表現は、特定のファイル拡張子で終わらないファイル名をキャプチャすることを目的としています。 、htm、html、クラス、js)。ただし、regexp パッケージを使用した Go での実装は、オンライン正規表現パーサーとは異なる結果を生成します。
この矛盾は、Go 標準ライブラリの RE2 正規表現エンジンが否定先読み (つまり、独自の表現)。その結果、指定されたファイル拡張子で終わる文字列を除外できません。
オンライン正規表現パーサーの動作を再現するには、次のアプローチを検討できます:
<code class="go">re := regexp.MustCompile(`^(.*\.(?!(htm|html|class|js)$))([^.]*)$`)</code>
<code class="go">re := regexp.MustCompile(`^(.*?)(?<!\.(htm|html|class|js)$)`)</code>
<code class="go">re := regexp.MustCompile(`.\w{3}$`)</code>
これらの式はロジックを異なる方法で実装するため、異なる結果が生じる可能性があることに注意してください。ユースケースに最適なアプローチを選択することが重要です。
以上がGo の Regex でネガティブ セットを実装する方法: 予期しない結果を回避するためのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。