Reqtify

时间:2016-02-01 13:39:44

标签: regex

我尝试过滤Reqtify中的以下几行:

Li.success tc_BT_Cancel_From_Pause_State_a4_2016-01-14_16h40m16s.log
Li.success tc_BT_Cancel_From_Pause_State_a5_2016-01-14_16h40m23s.log 
Li.success tc_BT_Cancel_Init_BtControlStop_2016-01-14_16h40m23s.log 

使用第一个正则表达式^Li.\w+\stc_(\w+)_20实现提取

BT_Cancel_From_Pause_State_a4
BT_Cancel_From_Pause_State_a5
BT_Cancel_Init_BtControlStop

但我的目标是剥离_a *后缀。

我已经尝试了另外一个表达式(.+)(_a\d)?,但结果没有改变。

(.+)(_a\d|)相同。

有没有人知道如何剥离这个可选部分? 最终的清单应该是:

BT_Cancel_From_Pause_State
BT_Cancel_From_Pause_State
BT_Cancel_Init_BtControlStop

谢谢, 克里斯

2 个答案:

答案 0 :(得分:1)

我建议:

^Li.\w+\stc_(\w+?)(?:_a\d)?_20

使用 Live Demo

答案 1 :(得分:1)

这应该可以解决问题:

^Li.\w+\stc_(\w+?)(_a\d)?_20

第1组保持不变,第2组将是可选的_aX。

如果您不想对第二部分进行分组,可以这样更改:

^Li.\w+\stc_(\w+?)(?:_a\d)?_20