如何设置正则是从错误开始的字符串,并以info或debug或警告忽略线路断裂结束。日志样本:
错误2017/12/12 00:11:34.352错误:{0} System.Reflection.targetInvocationException:异常是由调用的目标抛出的。---> outboundServicesoftFailUreException:针对聚合服务执行请求的故障:对象引用未设置为对象实例。 在proxyaggregationservice.ecute [t](ILOG日志,请求请求)上 在ResthangereQuestFormaf(字符串mafguid,字符串sendercode)上 在handerimpl(clearupworkbookrequest请求) 在UnitrequestHandler`1.Handle(Trequest请求) 在ExecuteInternal [Trequest,Tresponse](trequest请求) ---内部异常的结尾堆栈跟踪--- 在System.RuntimeThodHandle.invokeMethod(对象目标,对象[]参数,签名SIG,布尔构造函数) 在System.Reflection.runtimemethodinfo.unsafeinvokeinternal(object obj,object []参数,对象[]参数) 在System.Reflection.RuntimeMethodinfo.Invoke(Object obj,bindingflags InvokeAttr,粘合剂粘合剂,object []参数,cultureinfo培养物)) 在execunknown(对象请求) 在Invokemethodontarget() 在cproceed() 在拦截时(IINVocation调用) 在AbstractInvocation.proceed() 在拦截时(IINVocation调用) 在AbstractInvocation.proceed() 在拦截(IINVocation调用)
调试2017/12/12 00:11:35.300输入blah blah bla
警告2017/12/12 00:11:37.300可能的问题
尝试过 - 没有成功
Regex r = new Regex(@"(ERROR.*?((?:2|1)\d{3}(?:-|\/)(?:(?:0[1-9])|(?:1[0-2]))(?:-|\/)(?:(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))(?:T|\s)(?:(?:[0-1][0-9])|(?:2[0-3])):(?:[0-5][0-9]):(?:[0-5][0-9])))(.*)");
我认为您可以使用正面的lookahead进行,直到遇到信息或调试或警告。
ERROR[Ss]*?(?=s+INFO|DEBUG|WARN)
- 匹配
ERROR
- 匹配任何空格字符或任何非Whitespace字符零或更多次非贪婪
[Ss]*
- 积极的LookAhead
(?=
- 断言下面的是一个或多个空间
s+
- 随后是信息或调试或警告
INFO|DEBUG|WARN
- 关闭阳性lookahead
)
演示
Regex r = new Regex(@"ERROR[Ss]*?(?=s+INFO|DEBUG|WARN)");