我对微软的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。
此致
答案 0 :(得分:0)
你可以使用这样的正则表达式技巧:
(15:58:45[\s\S]*?15:58:46)
<强> Working demo 强>
或者也使用s
单行标志
(?s)(15:58:45.*?15:58:46)
答案 1 :(得分:0)
您可以使用
"columns": [
{
data: null,
bSortable: false,
render: function (data, type, row) { return '<button type="button" onclick="delete(this);" class="btn btn-default delete" data-id="' + data.id + '"><span class="glyphicon glyphicon-remove" /></button>'; }
},
],
请注意,aFriendlyAssigneeName = aFriendlyAssigneeName.substring(aFriendlyAssigneeName.indexOf(' '));
复选框为开启。
<强>详情:
\b15:58:4[5-6].*(?:\r?\n(?!\d{4}-\d{2}-\d).*)*
- 字边界Multiline
- 一系列文字字符\b
- 15:58:4
或[5-6]
5
- 其余部分6
- 0+序列:
.*
- 换行符(CRLF或LF)未跟随4位数,(?:\r?\n(?!\d{4}-\d{2}-\d).*)*
,2位数,\r?\n(?!\d{4}-\d{2}-\d)
和数字-
- 其余部分。或相同的模式,但更短,效率更低,但可能更具可读性:
-