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 サイトの他の関連記事を参照してください。