Go で大文字と小文字を区別しない文字列検索を実行するにはどうすればよいですか?

DDD
リリース: 2024-11-10 00:41:02
オリジナル
486 人が閲覧しました

How to Perform Case-Insensitive String Searches in Go?

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

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