这是另一个选项,它的正则表达式不那么复杂。它使用垃圾桶技巧。所以真正的数据在(第一和第二)捕获组上。它甚至适用于像这样的嵌套引号:"a.'b.c'.d.e."f.g.h""只要没有 2 级或更多级别的递归(如此处:"a.'b."c.d"'",引号内引号内引号)。正则表达式是这样的:^"|['"](\w+(?:\.\w+)*)['"]|(\w+)和代码:package mainimport ( "regexp" "fmt")func main() { var re = regexp.MustCompile(`^"|['"](\w+(?:\.\w+)*)['"]|(\w+)`) var str = `"a.'b.c'.d.e."f.g.h""` result := re.FindAllStringSubmatch(str, -1) for _, m := range result { if (m[1] != "" || m[2] != "") { fmt.Print(m[1] + m[2] + "\n") } }}输入:"a.'b.c'.d.e."f.g.h""输出:ab.cdef.g.h