我有以下Golang代码:
package main
import (
"fmt"
"regexp"
)
func main() {
// dummy text data
blob := `
#s-kiwi
foo
#e-kiwi
#s-banana
bar
#e-banana
#s-mango
baz
#e-mango
`
// try to match two lines
fruit := "banana"
result, _ := regexp.MatchString("#[se]-"+fruit, blob)
fmt.Println(result)
}
GoPlayground链接:https://go.dev/play/p/p9Q4HYijx9m
我试图通过AND属性的使用来实现完全匹配。我想搜索模式#s-banana
AND #e-banana
,以确保blob文本具有其封闭参数和启动器参数。
我尝试使用regexp.MatchString("#[se]-"+fruit, blob)
,但"#[se]-"
只匹配字符s
或e
。
这可以在一行中实现吗?我应该添加一个新的正则表达式条件吗?如果是这样的话,这似乎不是很完美。
我想要的结果是:
尝试使用AND条件在golang上使用regexp在文本中搜索两个字符串。
多谢了。
1条答案
按热度按时间piv4azn71#
我们并不完全清楚您要做什么。但是假设您要确认多行文本包含一对以
#s-banana
开头并以#e-banana
结尾的标记,您可以搜索这对标记,其间可以包含任意数量的字符:初始的
(?s)
也允许.
匹配换行符,.*?
匹配最短的零个或多个字符序列(包括换行符)。