所以我有这样的东西:
字符串。(数字1、数字2、数字3)
所以像这样:
废话。(12345678012)
我想得到第一个数字,即在一个regex中同时忽略逗号前的空格,然后在另一个regex中得到第二个数字,而不得到第一个,所以在第一个“和第二个”之间
我试着做以下的工作来获得第一个,但这对空间来说都不起作用:

^\(\d*,$

我甚至尝试过:
^.*?\([^\d]*(\d+)[^\d]*\).*$

还有这个:
\[\((\d+)\).*?\]

我在这里测试它:https://regex101.com/因为某种原因我一直没有得到匹配。
我正在尝试使用go语言实现它

最佳答案:

\(\s*(\d+)

细节
\(
-a
(

\s*
-0+空白
(\d+)
-第1组:一个或多个数字
second one是
\(\s*\d+\s*,\s*(\d+)

同上(删除了第一个数字匹配模式周围的捕获组),但添加了
\s*,\s*(\d+)

\s*,\s*
-a
,
用0+空格括起来
(\d+)
-第1组:一个或多个数字
Go playground demo
包主
import (
    "regexp"
    "fmt"
)

func main() {
    var str = `bla bla bla . (1234 , 5678 , 012)`
    var re = regexp.MustCompile(`\(\s*(\d+)`)

    match := re.FindStringSubmatch(str)
    fmt.Println(match[1])

    var re2 = regexp.MustCompile(`\(\s*\d+\s*,\s*(\d+)`)
    match2 := re2.FindStringSubmatch(str)
    fmt.Println(match2[1])
}

结果:
1234
5678