Products
GG网络技术分享 2025-03-18 16:15 3
I am using golang regexp and I want to extract a pattern in a string.
For example, I can have the following name value pairs in the string:
\"name1=val1;name2=val2;needle=haystack;name3=val3\"
I am looking for exactly the string \"needle=haystack\" and discard anything else.
It would be even better if I could just get the result to be exactly haystack.
How do I do this with regexp in golang?
图片转代码服务由CSDN问答提供
感谢您的意见,我们尽快改进~
功能建议我正在使用golang正则表达式,并且想提取字符串中的模式。</ p>
例如,我可以在字符串中包含以下名称/值对:</ p>
“ name1 = val1; name2 = val2; needle = haystack; name3 = val3” </ p>
我正在精确查找字符串“ needle = haystack”并丢弃其他任何内容。</ p>
如果我能得到准确的结果会更好 草垛。 </ p>
我该如何在golang中使用regexp?</ p>
</ div>
I\'m not entirely clear on what the goal is. If you\'re always looking for needle=haystack then you can use strings.Contains(str, \\\"needle=haystack\\\").
If you really want to do it with regexes then it would be something like the code below.
package mainimport (
\\\"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
}
这里的星号应该表示零个或任意个吧
Demand feedback