ホームページ > バックエンド開発 > Golang > Go で大文字と小文字を区別しない正規表現マッチングを実行するにはどうすればよいですか?

Go で大文字と小文字を区別しない正規表現マッチングを実行するにはどうすればよいですか?

DDD
リリース: 2024-12-05 00:19:11
オリジナル
576 人が閲覧しました

How to Perform Case-Insensitive Regular Expression Matching in Go?

Go における大文字と小文字を区別しない正規表現

正規表現を使用する場合、大文字と小文字に関係なくパターンを照合する必要がある状況に遭遇することがあります。 Go では、正規表現に特定のフラグを設定することで、大文字と小文字を区別しない一致を実現できます。

大文字と小文字を区別しないテキストと一致するために、ユーザー入力文字列が正規表現に変換される次の例を考えてみましょう。

reg, err := regexp.Compile(strings.Replace(s.Name, " ", "[ \._-]", -1))
ログイン後にコピー

この正規表現で大文字と小文字を区別しないようにするには、(?i) フラグを正規表現の先頭に追加します。 string:

reg, err := regexp.Compile("(?i)" + strings.Replace(s.Name, " ", "[ \._-]", -1))
ログイン後にコピー

(?i) フラグは、照合中に大文字と小文字の違いを無視するように正規表現に指示します。これは、2 つの異なるケースで文字に一致する [nN] のようなパターンが不要になったことを意味します。

たとえば、次の固定正規表現は、大文字と小文字を区別しない一致を示しています。

r := regexp.MustCompile(`(?i)CaSe`)
ログイン後にコピー

この式では、(?i) フラグにより​​、「CaSe」と「case」の両方が一致することが保証されます。

必ずドキュメントを参照してください。 Go の正規表現で使用できるフラグと構文オプションの詳細については、regexp/syntax パッケージを参照してください。

以上がGo で大文字と小文字を区別しない正規表現マッチングを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート