我想让所有工作都在字符串中-在一对{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/