Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何精确匹配regexp中的部分字符串并忽略模式前后的任何字符?_Javascript_Regex_Go - Fatal编程技术网

Javascript 如何精确匹配regexp中的部分字符串并忽略模式前后的任何字符?

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,我想提取字符串中的模式

例如,我可以在字符串中包含以下名称-值对:

“name1=val1;name2=val2;needle=haystack;name3=val3”

我正在寻找“针=干草堆”这一串,并丢弃其他任何东西

如果我能得到的结果完全是干草堆,那就更好了


如何使用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])//干草堆
}

这正是我要找的奥马尔!