我有这些字符串,它们可以通过多种方式出现,例如:
id=PS\\ Old\\ Gen, value=34
和id=Code\\ Cache,value=22
等
我希望使用一个正则表达式将=
到,
之后的所有内容提取为:PS\\ Old\\ Gen
和Code\\ Cache
等。
我编写了以下正则表达式,但似乎无法在,
之前得到最后一个单词。
(([a-zA-z]+)\\{2})+
有什么想法吗?这是围棋语言。
答案 0 :(得分:1)
您可以使用此正则表达式来捕获来自group1的文本,
id=([^,=]*),
说明:
id=
-完全匹配id=
([^,=]*)
-匹配,
或=
以外的任何字符零次或更多次,并以第一种分组方式捕获,
-匹配逗号示例Go代码,
var re = regexp.MustCompile(`id=([^,=]*),`)
var str = `id=PS\\ Old\\ Gen, value=34 id=Code\\ Cache,value=22`
res := re.FindAllStringSubmatch(str, -1)
for i := range res {
fmt.Printf("Match: %s\n", res[i][1])
}
打印
Match: PS\\ Old\\ Gen
Match: Code\\ Cache
答案 1 :(得分:0)
像id=([^,]+),
之类的技巧可以做到吗?
捕获组1将包含您的比赛。实际操作here
答案 2 :(得分:0)
那呢? 请参阅 REGEX
package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?mi)id=([^,]+)`)
var str = `id=PS\\ Old\\ Gen, value=34 and id=Code\\ Cache,value=22`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}