首頁 > 後端開發 > Golang > 主體

如何在 Go 中執行不區分大小寫的字串搜尋?

DDD
發布: 2024-11-10 00:41:02
原創
466 人瀏覽過

How to Perform Case-Insensitive String Searches in Go?

Go 中不區分大小寫的字串搜尋

在檔案中搜尋特定字串時,可能需要執行不區分大小寫的搜尋以確保所有發生的事件都會被捕獲。這在處理可能同時包含大寫和小寫字元的文字時特別有用。

在 Go 中, strings.EqualFold() 函數為不區分大小寫的字串匹配提供了便捷的解決方案。它比較兩個字串,如果它們相等則傳回 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板