gpt4 book ai didi

java - 匹配可选值的正则表达式

转载 作者:行者123 更新时间:2023-12-02 07:51:42 25 4
gpt4 key购买 nike

我正在尝试从网络服务器日志中提取一些信息,但它的结构不是很好,所以我遇到了麻烦,我正在尝试匹配:

示例 1:

2011-11-29 11:30:23,685 DEBUG [my.fully.qualified.package.Service] Added Action Item: M= 2  Success

示例 2:

2011-11-29 11:30:23,685 DEBUG [my.fully.qualified.package.Service] Added Action Item: M=10  Success

此正则表达式适用于示例 1:

(\d\d\d\d-\d\d-\d\d)\s[\d|:]+,\d+\s([A-Z]+)\s\[(.+)\]\s.+:\sM=\s(\d).+

其中第一组是日期,第二组是日志级别,第三组是类名称,第三组是 M 的值。

您可能已经注意到,在示例 1 中,M= 之后的数字前有一个空格,而在另一个示例中则没有,这就是此正则表达式不起作用的原因。

我确实尝试了类似 M=[\s|d]+ 的操作,但我得到了更多与我要求的匹配的字符,有人建议如何将这两个示例与一个正则表达式匹配吗?

最佳答案

您希望 M=\s*(\d+)= 后立即允许有零个或多个空格,但在数字后不允许有任何空格。

关于java - 匹配可选值的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com