在Go 中使用正規表示式來找出符合
使用Go 時,您可能會遇到需要使用正規表示式來符合字元串中的特定模式。以下是如何使用regexp 套件來完成此操作:
問題:
如何找到給定字串中指定正規表示式的所有匹配項並將它們作為數組?
範例:
考慮字串:「{city},{state} {zip}」。目標是傳回一個包含大括號括起來的所有子字串的陣列。
初始嘗試:
使用regexp 包,您可能已經嘗試過以下程式碼:
r := regexp.MustCompile("/({[^}]*})/") matches := r.FindAllString("{city}, {state} {zip}", -1)
但是,此程式碼會傳回一個空切片,表示沒有匹配項找到。
解決方案:
要解決此問題,請考慮以下步驟:
對於所有匹配:
r := regexp.MustCompile(`{[^{}]*}`) matches := r.FindAllString("{city}, {state} {zip}", -1) fmt.Println(matches) // Prints: [{city}, {state}, {zip}]
對於捕獲的零件僅:
r := regexp.MustCompile(`{([^{}]*)}`) matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1) for _, v := range matches { fmt.Println(v[1]) // Prints: city, state, zip }
以上是如何有效率地尋找 Go 字串中的所有正規表示式匹配項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!