Regex 正则表达式在字符串中找到许多单词
我想得到字符串中的所有工作-在Regex 正则表达式在字符串中找到许多单词,regex,go,Regex,Go,我想得到字符串中的所有工作-在{word} 例如: payment://pay?id={appid}&transtoken={transtoken} 预期结果: ["appid", "transtoken"] 使用regex partern:{\w+},我只能获得[{appid},{transtoken}] 请帮我解决这个问题。您可以将以下模式用于: 请参阅Go regexp文档: FindAllStringSubmatch是FindStringSubmatch的“全部”版本;它返回
{word}
例如:
payment://pay?id={appid}&transtoken={transtoken}
预期结果:
["appid", "transtoken"]
使用regex partern:{\w+}
,我只能获得[{appid},{transtoken}]
请帮我解决这个问题。您可以将以下模式用于: 请参阅Go regexp文档:
FindAllStringSubmatch
是FindStringSubmatch
的“全部”版本;它返回表达式的所有连续匹配的片段,如包注释中的“all”描述所定义。返回值nil表示不匹配
及
FindStringSubmatch
返回一段字符串,其中包含s
中正则表达式最左侧匹配项的文本以及其子表达式的匹配项(如果有),如包注释中的“Submatch”描述所定义。返回值nil表示不匹配
见:
输出:
"appid"
"transtoken"
使用
`{(\w+)}`
它不起作用,兄弟@WiktorStribiżew.:(是的,看。
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"