我想让所有工作都在字符串中-在一对{word}之间

例子:

payment://pay?id={appid}&transtoken={transtoken}

结果预期:
["appid", "transtoken"]

使用正则表达式partern:{\w+},我只能得到[{appid}, {transtoken}]

请帮我解决这个问题。

最佳答案

您可以对 FindAllStringSubmatch 使用以下模式:

{(\w+)}

请参阅Go regexp文档:







参见Go demo:
package main

import (
    "fmt"
    "regexp"
)

func main() {
    s := `payment://pay?id={appid}&transtoken={transtoken}`
    rex := regexp.MustCompile(`{(\w+)}`)
    results := rex.FindAllStringSubmatch(s,-1)
    for _, value := range results  {
        fmt.Printf("%q\n", value[1])
    }
}

输出:
"appid"
"transtoken"

关于regex - 正则表达式在字符串中找到很多单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55450689/

10-10 14:32