如何使用正则表达式匹配特定行?

时间:2011-07-28 12:40:34

标签: regex

我需要使用正则表达式匹配以下行。

单行包含以下内容(示例):

2010/11/29 09:37:55 (2768)FMS:600 ERROR> Received SIGWARNING: nonstandard use of escape in a string literal
2010/11/29 09:37:55 (2768)FMS:600 ERROR> Received SIGNOTICE: exp: select * from follow_me_switch.call_from_entries where follow_me_group_id in ( select id from follow_me_switch.follow_me_groups where profile_id =105 and follow_me_switch.call_from_entries.call_from_number !~ \'^s*$\'

从这些行我需要匹配并删除日期和时间戳,直到ERROR> 我们如何使用有效的正则表达式来匹配它?

提前致谢。

4 个答案:

答案 0 :(得分:2)

嗯,嗯,怎么样:

^2010\/11\/29 09:39:57 \(2786\)Db_Wrapper\.pm:1404 ERROR\>

但不知何故,我认为,你的意思不同......

编辑:此答案适用于之前编辑的早期问题。

答案 1 :(得分:1)

如果你的意思是db_wrapper中的每一行都有类似

的错误
^\d{4}/\d{1,2}/\d{1,2} \d{2}:\d{2}:\d{2} \(\d+\)Db_Wrapper\.pm:\d+ ERROR>

或更容易,只是

^.*Db_Wrapper\.pm:\d+ ERROR>

答案 2 :(得分:1)

这是你想要的吗?

^.*?(?=ERROR)

并替换为空字符串

here on Regexr

这将匹配所有内容,直到第一个ERROR提前。

.*?是一个只会尽可能少匹配的懒人匹配

(?=ERROR)是一个积极的展望,可以检查字符串ERROR是下一个

答案 3 :(得分:0)

另一个正则表达式:

^\d{4}/\d{2}/\d{2}\s\d{2}:\d{2}:\d{2}\s\(\d+\)Db_Wrapper\.pm:\d+\sERROR>