Go の正規表現エンジンで特定のファイル拡張子を持たない文字列を照合するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-26 07:35:30
オリジナル
432 人が閲覧しました

How Can I Match Strings Without Specific File Extensions in Go's Regex Engine?

Go の正規表現エンジンにおける否定セットを理解する

Go では、標準ライブラリの正規表現エンジン (RE2) には、次のようなルックアラウンドのサポートがありません。負の先読み演算子 ?!指定された正規表現で使用されるもの:

^(.*\.(?!(htm|html|class|js)$))?[^.]
ログイン後にコピー

この正規表現は、特定のファイル拡張子で終わらない文字列と一致することを目的としています。ただし、Go では、ルックアラウンド サポートがないため、期待どおりに機能しません。

代替ソリューション

否定セットに依存する代わりに、代替ソリューションがあります。 Go でこのシナリオを処理するソリューション:

  1. ファイル拡張子を直接検証:
    否定されたセットを目的のファイル拡張子の直接チェックで置き換えます:

    re.MustCompile(`(type1|type2)_(\d+)\.(csv|ini)`)
    ログイン後にコピー
  2. 末尾のピリオドを削除:
    文字列が追加文字なしで 3 文字のファイル拡張子で終わるようにすることが目的の場合、簡略化された

    re.MustCompile(`\.\w{3}$`)
    ログイン後にコピー

Matching Behavior

否定されたセットを削除するか、代替構文を使用することにより、Go の正規表現エンジンは正確に期待どおり、目的の文字列と一致します。

以上がGo の正規表現エンジンで特定のファイル拡張子を持たない文字列を照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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