这是一个选择题示例。我想在golang的以下代码内容中获取“英国、法国”、“加拿大、墨西哥”、“葡萄牙、加拿大”、“印度、德国”等中文文本,但它不起作用。


package main


import (

    "fmt"

    "regexp"

    "testing"

)


func TestRegex(t *testing.T) {

    text := `( B )38.目前,亚马逊美国站后台,除了有美国站点外,还有(    )站点。

A.英国、法国B.加拿大、墨西哥

C.葡萄牙、加拿大D.墨西哥、德国

`


    fmt.Printf("%q\n", regexp.MustCompile(`[A-E]\.(\S+)?`).FindAllStringSubmatch(text, -1))

    fmt.Printf("%q\n", regexp.MustCompile(`[A-E]\.`).Split(text, -1))

}

文本:


( B )38.目前,亚马逊美国站后台,除了有美国站点外,还有(    )站点。

A.英国、法国B.加拿大、墨西哥

C.葡萄牙、加拿大D.墨西哥、德国


图案:[A-E]\.(\S+)?


实际结果:[["A.英国、法国B.加拿大、墨西哥" "英国、法国B.加拿大、墨西哥"] ["C.葡萄牙、加拿大D.墨西哥、德国" "葡萄牙、加拿大D.墨西哥、德国"]]。


预期结果:[["A.英国、法国" "英国、法国"] ["B.加拿大、墨西哥" "加拿大、墨西哥"] ["C.葡萄牙、加拿大" "葡萄牙、加拿大"] ["D.墨西哥、德国" "墨西哥、德国"]]


我认为这可能是一个贪婪模式问题。因为在我的代码中,它直接将选项 A 和选项 B 读取为一个选项。