1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
首先,您不需要正則表達(dá)式分隔符。其次,使用原始字符串文字來定義正則表達(dá)式模式是一個(gè)好主意,您只需使用 1 個(gè)反斜杠來轉(zhuǎn)義正則表達(dá)式元字符。{第三,僅當(dāng)您需要獲取不帶and的值時(shí)才需要捕獲組},因此,您可以將其刪除以獲取{city}, {state}and {zip}。
您可以使用FindAllString獲取所有匹配項(xiàng):
r := regexp.MustCompile(`{[^{}]*}`)
matches := r.FindAllString("{city}, {state} {zip}", -1)
請參閱Go 演示。
要僅獲取花括號之間的部分,請使用FindAllStringSubmatch包含捕獲括號的模式,{([^{}]*)}:
r := regexp.MustCompile(`{([^{}]*)}`)
matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1)
for _, v := range matches {
fmt.Println(v[1])
}
請參閱此 Go 演示。
正則表達(dá)式詳細(xì)信息
{
- 文字{
字符([^{}]*)
- 一個(gè)捕獲組,匹配除 and 之外的任何 0 個(gè)或多個(gè)(由于量詞)字符(是與*
除{
and之間指定的字符之外的任何字符匹配的否定字符類)}
[^...]
[^
]
}
- 文字}
字符
- 1 回答
- 0 關(guān)注
- 336 瀏覽
添加回答
舉報(bào)