Javascript 如何精确匹配regexp中的部分字符串并忽略模式前后的任何字符?
我正在使用golang regexp,我想提取字符串中的模式 例如,我可以在字符串中包含以下名称-值对: “name1=val1;name2=val2;needle=haystack;name3=val3” 我正在寻找“针=干草堆”这一串,并丢弃其他任何东西 如果我能得到的结果完全是干草堆,那就更好了Javascript 如何精确匹配regexp中的部分字符串并忽略模式前后的任何字符?,javascript,regex,go,Javascript,Regex,Go,我正在使用golang regexp,我想提取字符串中的模式 例如,我可以在字符串中包含以下名称-值对: “name1=val1;name2=val2;needle=haystack;name3=val3” 我正在寻找“针=干草堆”这一串,并丢弃其他任何东西 如果我能得到的结果完全是干草堆,那就更好了 如何使用golang中的regexp实现这一点?我不完全清楚目标是什么。如果您总是在寻找针=干草堆,那么可以使用strings.Contains(str,“针=干草堆”) 如果你真的想用正则表达式
如何使用golang中的regexp实现这一点?我不完全清楚目标是什么。如果您总是在寻找针=干草堆,那么可以使用strings.Contains(str,“针=干草堆”) 如果你真的想用正则表达式来实现它,那么它将类似于下面的代码
package main
import (
"fmt"
"regexp"
)
func main() {
str := "name1=val1;name2=val2;needle=haystack;name3=val3"
r := regexp.MustCompile("needle=([a-z]+);")
found := r.FindString(str)
if found == "" {
fmt.Println("No match found")
return
}
fmt.Println(found) // needle=haystack;
submatches := r.FindStringSubmatch(str)
fmt.Println(submatches) // [needle=haystack; haystack]
if len(submatches) < 2 {
fmt.Println("No submatch found")
return
}
fmt.Println(submatches[1]) // haystack
}
主程序包
进口(
“fmt”
“regexp”
)
func main(){
str:=“name1=val1;name2=val2;needle=haystack;name3=val3”
r:=regexp.MustCompile(“针=([a-z]+);”)
找到:=r.FindString(str)
如果找到=“”{
fmt.Println(“未找到匹配项”)
返回
}
fmt.Println(found)//needle=haystack;
子匹配:=r.FindStringSubmatch(str)
fmt.Println(子匹配)/[针=干草堆;干草堆]
如果len(子匹配)<2{
fmt.Println(“未找到子匹配”)
返回
}
fmt.Println(子匹配[1])//干草堆
}
这正是我要找的奥马尔!