我对微软的REGEX (正则表达式)有一个疑问。在这种模式下,我有一个日志文件写入。
2017-02-20 15:58:45.442 - [XYZ] 155 RADIO_TRAIN_TO_TRACK_INITIATION_COM_SESSION
.VAR1
.VAR2
.VAR3
.VAR4
2017-02-20 15:58:46.432 - [XYZ] 32 RADIO_TRACK_TO_TRAIN_CONFIGURATION_DETERMINATION
.VAR1
.VAR2
.VAR3
.VAR4
.VAR5
.VAR6
2017-02-20 15:58:48.541 - [XYZ] 155 RADIO_TRAIN_TO_TRACK_INITIATION_COM_SESSION
other lines我的问题是:我如何从15:58:45到15:58:46 (包括)提取所有文本。(使用regex)。
我使用15:58:4[5-6]|VAR1表达式,但是这个表达式提取日志中的所有VAR1,我将只提取特定范围内的VAR1。
问候
发布于 2017-03-13 15:13:02
你可以用
\b15:58:4[5-6].*(?:\r?\n(?!\d{4}-\d{2}-\d).*)*注意,Multiline复选框是ON。
详细信息
\b -一个单词边界15:58:4 -一个文字字符的序列[5-6] -5或6.* -行的其余部分(?:\r?\n(?!\d{4}-\d{2}-\d).*)* - 0+序列:\r?\n(?!\d{4}-\d{2}-\d) -断线(CRLF或LF)后面没有4位,-,2位,-和1位。.* -剩下的部分。

或者相同的模式,但是更短一些,效率更低,但可能更容易读懂:
\b15:58:4[5-6].*?(?=\d{4}-\d{2}-\d|$)

发布于 2017-03-13 14:58:16
https://stackoverflow.com/questions/42766469
复制相似问题