regex - 如何在go中检测单个字符串中正则表达式的所有匹配项

标签 regex go

我正在尝试构建一个正则表达式来检测字符串中类似 unix 时间戳的模式。但是,某些字符串包含多个“unix 时间”(如模式),而 go 的正则表达式仅检测此类模式的第一个实例。

我当前的正则表达式:

utcRegex, _ := regexp.Compile(^.*\[(\d{7,})\].*)

utcCheck := utcRegex.FindStringSubmatch(字符串)

utc := utcCheck[1]

以下是一些示例字符串:

正则表达式可以很好地处理这些类型的字符串

“11 月 6 日 11:21:34 [14039]:[1541532094] [DEBUG] FOO BAR”

正则表达式正确检测到 1541532094

正则表达式不能满足我的要求

“08-13 11:46:56.379 24980 24980 D SDK: [1565711216] [DEBUG] [15657110953902503] [FOO BAR]”

正则表达式只检测到15657110953902503,没有检测到1565711216,我只对1565711216感兴趣,正则表达式只检测到15657110953902503

我是否可以对我的 go 正则表达式进行更新以检测这两者,然后选择该模式的第一个/第二个实例?

最佳答案

你的正则表达式太死板了,试试:

\[(\d{7,})\]

$1 将包含匹配项。

https://regex101.com/r/XoEx56/1

关于regex - 如何在go中检测单个字符串中正则表达式的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57561835/

相关文章:

java - 查找 Arraylist 中包含子字符串的所有字符串的有效方法

regex - 重命名树中基本名称中包含扩展名的文件

Go RWMutex 仍然会引发竞争条件吗?

python - 当我的模式只包含一个组时,为什么 re.findall 返回一个元组列表?

Python正则表达式匹配不在引号之间的某些字符

c# - 正则表达式检查重复

javascript - 如何整合Golang后端和Javascript(three.js)前端?

go - 如何释放 C.CString 分配的内存?

go - 我怎样才能进一步理解为什么 Go 以它的方式处理错误?

go - 如何在 Go 中从 system-d 服务运行时修复环境变量不起作用