编程网今天将给大家带来《从 Go 中的字符串中提取匹配模式》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!
问题内容如何根据模式从字符串中提取值?
这是我的模式:Member-[A-Za-z]+-Age%d+
示例:Member-John-Age50
、Member-Peter-Age120
我想在给定与模式匹配的字符串的情况下提取 name
和 age
。
解决方案
-[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
}
}
现在这是我尝试继续使用正则表达式,当然你可以用其他方式来做。姓名和年龄应存储在变量中,您可以根据需要使用它们。
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~