如何根据模式从字符串中提取值?
这是我的模式:Member-[A-Za-z]+-Age%d+
示例:Member-John-Age50
,Member-Peter-Age120
我想提取name
和age
给定一个与模式匹配的字符串。
答案 0 :(得分:3)
-[A-Za-z]+-
表示名称,\d+
表示年龄。例如:
import "regexp"
import "fmt"
func main() {
r, _ := regexp.Compile(`Member-([A-Za-z]+)-Age(\d+)`) // Pay attention, no ", instead `
name, _ := regexp.Compile(`-[A-Za-z]+-`)
age, _ := regexp.Compile(`\d+`)
matched_strings := r.FindAllString("oMember-John-Age50, jvienvujfeuvfejvwMember-Peter-Age120jvfjemvfjenvfeuvnuru", -1)
for i := range matched_strings {
name := name.FindString(matched_strings[i])
name = name[1:len(name)-1]
age := age.FindString(matched_strings[i])
fmt.Println(name, age) // John 50, Peter 120
}
}
现在这是我试图继续使用正则表达式的方法,当然您可以通过其他方式来使用它。名称和年龄应该存储在变量中,您可以根据需要使用它们。