Go での大文字と小文字を区別しない文字列検索
ファイル内で特定の文字列を検索する場合、大文字と小文字を区別しない検索を実行して確実に検索する必要がある場合があります。すべての出来事がキャプチャされます。これは、大文字と小文字の両方が含まれる可能性のあるテキストを操作する場合に特に便利です。
Go では、strings.EqualFold() 関数は、大文字と小文字を区別しない文字列マッチングのための便利なソリューションを提供します。 2 つの文字列を比較し、大文字と小文字に関係なく、等しい場合は true を返します。この関数は Unicode 文字も処理できるため、幅広い使用例に適しています。
たとえば、次のシナリオを考えてみましょう。ファイル内で文字列「Update」を検索する必要があります。 「Update」と「update」は大文字と小文字を区別しないコンテキストでは同等とみなされ、検索で両方に一致するようにしたいとします。
これを実現するには、次のように strings.EqualFold() 関数を使用します。
package main import ( "fmt" "strings" ) func main() { if strings.EqualFold("Update", "update") { fmt.Println("Match found") } }
この例では、strings.EqualFold() 関数は true を返します。これは、大文字と小文字が無視される場合、「Update」と「update」が等しいとみなされることを示します。
詳細については、包括的な例として、ファイル内で大文字と小文字を区別しない検索を実行する方法を示す次のプログラムを考えてみましょう。
package main import ( "bufio" "fmt" "os" "strings" ) func main() { // Open the file for reading file, err := os.Open("file.txt") if err != nil { panic(err) } defer file.Close() // Create a scanner to iterate over the file line by line scanner := bufio.NewScanner(file) // Specify the target string to search for target := "Update" // Read the file line by line for scanner.Scan() { line := scanner.Text() // Perform a case-insensitive search for the target string if strings.Contains(strings.ToLower(line), strings.ToLower(target)) { fmt.Println("Match found in line:", line) } } }
このプログラムでは、strings.Contains() 関数を使用して、小文字バージョンの検索を行っています。ファイル内の各行の小文字バージョン内のターゲット文字列。これにより、「Update」と「update」の両方が一致することが保証されます。
プログラムの出力は、大文字と小文字に関係なく、ターゲット文字列を含む行のリストになります。これは、strings.EqualFold() 関数と strings.Contains() 関数を使用して Go で大文字と小文字を区別しない文字列検索を実行する方法を示します。
以上がGo で大文字と小文字を区別しない文字列検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。