首页 > 编程语言 >Golang日志正则表达式匹配方法

Golang日志正则表达式匹配方法

来源:互联网 2026-07-13 08:05:12

Go语言日志格式如"[2021-09-0112:34:56][INFO]消息内容",利用regexp包的正则表达式(\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2})[(INFO|WARN|ERROR)](.+)定义三个捕获组,分别匹配日期时间、日志级别和消息文本。调用FindStringSubmatch函数返回字符串切片,通过索引1获取

Golang 日志解析常需借助正则表达式。例如,若日志格式如下:

Golang日志正则表达式匹配方法

长期稳定更新的攒劲资源: >>>点此立即查看<<<

[2021-09-01 12:34:56] [INFO] This is an example log message.

通过正则表达式提取日期、日志级别及正文的方法十分直接——使用 Go 标准库 regexp 包即可完成。以下是一个可用的正则表达式及完整示例代码:

package main

import (
	"fmt"
	"regexp"
)

func main() {
	logPattern := `(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) \[(INFO|WARN|ERROR)\] (.+)`
	re := regexp.MustCompile(logPattern)
	logLine := "[2021-09-01 12:34:56] [INFO] This is an example log message."
	match := re.FindStringSubmatch(logLine)
	if len(match) > 0 {
		fmt.Printf("Date: %s\n", match[1])
		fmt.Printf("Level: %s\n", match[2])
		fmt.Printf("Message: %s\n", match[3])
	} else {
		fmt.Println("No match found")
	}
}

代码中,logPattern 定义了日志匹配规则:日期、级别和消息分别由捕获组包裹。使用 regexp.MustCompile 编译该模式,再通过 FindStringSubmatch 从目标字符串提取匹配结果。若匹配成功,即可获取日期、日志级别及消息文本。

实际项目中,日志格式可能更复杂——例如包含时间戳、模块名、请求 ID 等。只需按照相同思路调整正则表达式的分组,核心逻辑保持一致,即可实现 Golang 日志的正则匹配与解析。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。