所以我有这样的东西:
字符串。(数字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