java正则表达式 多行_正则表达式(可选)多行java s

这是我关于堆栈溢出的第一个问题。我已经找到了很多关于堆栈溢出的答案,但没有找到这个问题的答案。(请注意,感谢您迄今为止提供的所有好答案!!)在

我正在构建一个日志文件解析器,它将所有内容都输出到graylog,但是我很难匹配多行stacktrace(或多行信息消息)。在

现在我有一段python代码:import re

pattern = re.compile(r'^\[(\d{2})/(\d{2})/(\d{4}) (\d{2}):(\d{2}):(\d{2})\] MW(\d*) P(\d*) PR(\d*)\] (.{5}) - (.*) - (.*)', re.MULTILINE)

colnames = ('day','month','year','hour','minute','second','medewerkerid','patientid','praktijkid','level','logger','short_message')

file = open('file.log.2013-12-03','r')

for line in file:

match = pattern.match(line)

if match:

for item in match.groups():

print item

print

日志文件如下所示:

^{pr2}$

所有的单根原木线都能正常工作。除了多行之外,所有内容都被分成适当数量的组。我希望多行消息是1个附加组的一部分(它将被命名为完整的消息)。在

我已经尝试了很多方法,但是我的正则表达式知识不是很好。在

有人能给我个建议吗?在

基本上,我想要的是在任何一行的末尾,如果下一行不是以括号([)开头的话,就把整行放在1组中,然后所有的行,直到我们到达括号([)。在

如果行不匹配,我可以用else来做,但是我想知道是否也可以用1个regex行来完成。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值