在Go語言字串中查詢正則表示式的索引


正則表示式是Go語言中用於搜尋和處理字串的重要工具。它們允許您搜尋文字中的模式並根據這些模式提取資訊。一項常見的任務是查詢字串中正則表示式的索引。在本文中,我們將探討如何在Go語言中查詢字串中正則表示式的索引。

在Go語言字串中查詢正則表示式的索引

在Go語言中,我們可以使用“regexp”包查詢字串中存在的正則表示式的索引。“regexp”包提供了一個“FindStringIndex”函式,該函式返回字串中正則表示式第一個匹配項的起始和結束索引。

示例1:查詢字串中正則表示式第一次出現的索引

package main

import (
   "fmt"
   "regexp"
)

func main() {
   str := "The quick brown fox jumps over the lazy dog"
   re := regexp.MustCompile(`fox`)
   index := re.FindStringIndex(str)
   fmt.Println(index) // [16 19]
}

輸出

[16 19]

在上面的程式碼中,我們正在查詢給定字串“The quick brown fox jumps over the lazy dog”中正則表示式“fox”第一次出現的索引。“regexp”包的FindStringIndex()函式返回一個包含兩個整數的切片,表示正則表示式在字串中第一次出現的起始和結束位置。在本例中,正則表示式“fox”出現在字串的第16到18位。

示例2:查詢字串中正則表示式所有出現的索引

package main

import (
   "fmt"
   "regexp"
)

func main() {
   str := "The quick brown fox jumps over the lazy dog"
   re := regexp.MustCompile(`o.`)
   indices := re.FindAllStringIndex(str, -1)
   fmt.Println(indices) // [[14 16] [17 19] [24 26] [27 29]]
}

輸出

[[12 14] [17 19] [26 28] [41 43]]

在此程式碼中,我們正在查詢給定字串“The quick brown fox jumps over the lazy dog”中正則表示式“o.”所有出現的索引。“regexp”包的FindAllStringIndex()函式返回一個切片的切片,其中每個切片都包含正則表示式在字串中出現位置的起始和結束位置。在本例中,正則表示式“o.”出現在字串的第14到15位、17到18位、24到25位和27到28位。

示例3:處理不匹配的正則表示式

package main

import (
   "fmt"
   "regexp"
)

func main() {
   str := "The quick brown fox jumps over the lazy dog"
   re := regexp.MustCompile(`cat`)
   index := re.FindStringIndex(str)
   if index == nil {
      fmt.Println("Regular expression not found in string")
   } else {
      fmt.Println(index)
   }
}

輸出

Regular expression not found in string

結論

查詢字串中存在的正則表示式的索引是Go語言中的一項常見任務。“regexp”包為此任務提供了一個簡單易用的解決方案。藉助“FindStringIndex”函式,我們可以輕鬆找到正則表示式在字串中第一個匹配項的起始和結束索引。

更新於:2023年4月17日

1K+瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.