匹配=(以空格分隔)之后所有出现的正则表达式是什么?

我有/components/component[name=fan/10 index=55]/cpu

我想要一个regex给我fan/10和的55

我尝试过类似的东西=(.*)\s,但不起作用。但我猜它必须以某种方式使用捕获组( () )来完成?


茅侃侃
浏览 119回答 2
2回答

呼唤远方

您可以使用=([^\]\s]+)请参阅正则表达式演示细节=- 等号([^\]\s]+)- 捕获组 1:除 和 空格之外的任何 1 个或多个字符]。去演示:package mainimport (    "fmt"    "regexp")func main() {    s := "/components/component[name=fan/10 index=55]/cpu"    rx := regexp.MustCompile(`=([^\]\s]+)`)    matches := rx.FindAllStringSubmatch(s, -1)    for _, v := range matches {        fmt.Println(v[1])       }}输出:fan/1055

慕侠2389804

您可以尝试使用这样的东西:s := "/components/component[name=fan/10 index=55]/cpu"re := regexp.MustCompile(`=([^\s\]]*)`)matches := re.FindAllStringSubmatch(s, -1)fmt.Println(matches)结果将是:[[=fan/10 fan/10] [=55 55]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go