正则表达式,提取区间内的变量
Regex, extract var inside interval
我对 Microsoft 的 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 的所有文本(包括)。 (使用正则表达式)。
我使用 15:58:4[5-6]|VAR1
表达式,但此表达式提取日志中的所有 VAR1,我只会提取特定范围内的 VAR1。
此致
您可以使用这样的正则表达式技巧:
(15:58:45[\s\S]*?15:58:46)
或者也使用 s
单行标志
(?s)(15:58:45.*?15:58:46)
您可以使用
\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 个数字,-
和一个数字
.*
- 该行的其余部分。
或相同的模式,但更短且效率更低,但可能更具可读性:
\b15:58:4[5-6].*?(?=\d{4}-\d{2}-\d|$)
我对 Microsoft 的 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 的所有文本(包括)。 (使用正则表达式)。
我使用 15:58:4[5-6]|VAR1
表达式,但此表达式提取日志中的所有 VAR1,我只会提取特定范围内的 VAR1。
此致
您可以使用这样的正则表达式技巧:
(15:58:45[\s\S]*?15:58:46)
或者也使用 s
单行标志
(?s)(15:58:45.*?15:58:46)
您可以使用
\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 个数字,-
和一个数字.*
- 该行的其余部分。
或相同的模式,但更短且效率更低,但可能更具可读性:
\b15:58:4[5-6].*?(?=\d{4}-\d{2}-\d|$)