所以我有这样的东西:
字符串。 (数字 1,数字 2,数字 3) 所以像这样:
布拉布拉布拉。 (1234, 5678, 012)
我想得到第一个数字,即 ( 和 , & 在一个正则表达式中同时忽略逗号前的空格,然后在另一个正则表达式中得到第二个数字而不得到第一个,所以在第一个之间' 和第二个 '
我尝试执行以下操作以获得第一个,但即使有空间也没有用:
^\(\d*,$
我什至试过这个:
^.*?\([^\d]*(\d+)[^\d]*\).*$
还有这个:
\[\((\d+)\).*?\]
我在这里测试它:https://regex101.com/由于某种原因,我总是找不到匹配项
我正在尝试使用Go语言实现它
最佳答案
\(\s*(\d+)
详情
\(
- 一个(
\s*
- 0+ 个空格(\d+)
- 第 1 组:一个或多个数字
还有 second one是
\(\s*\d+\s*,\s*(\d+)
与上面相同(删除了第一个数字匹配模式周围的捕获组),但添加了 \s*,\s*(\d+)
:
\s*,\s*
- 包含 0+ 个空格的,
(\d+)
- 第 1 组:一个或多个数字
主要包
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
关于regex - 获取中间数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46817073/