Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式:与包含和不包含匹配_Regex - Fatal编程技术网

Regex 正则表达式:与包含和不包含匹配

Regex 正则表达式:与包含和不包含匹配,regex,Regex,我试图解析一个日志文件,该文件包含许多行,其中包含单词ERROR,后跟引发异常的类和方法,如下所示: 2016-08-18 19:38:17 ERROR [KUHOMNYXARCH] [ 47] [c43215c4-acfd-491b-b418-653b53195be3] [MultiFormatRoiStreamer.GetImageRoi] 2016-08-18 19:39:46 ERROR [KUHOMNYXARCH] [ 46] [10ba0a0e-0ede-4d0e-a582-d7

我试图解析一个日志文件,该文件包含许多行,其中包含单词
ERROR
,后跟引发异常的类和方法,如下所示:

2016-08-18 19:38:17 ERROR  [KUHOMNYXARCH] [ 47] [c43215c4-acfd-491b-b418-653b53195be3] [MultiFormatRoiStreamer.GetImageRoi]
2016-08-18 19:39:46 ERROR  [KUHOMNYXARCH] [ 46] [10ba0a0e-0ede-4d0e-a582-d7e811bb7ade] [ExceptionHandlingBehavior.ProvideFault] 
我正在尝试编写一个正则表达式,它将匹配所有包含
错误
,但不包含
多格式IStream.GetImageRoi
异常处理行为的行。提供默认值
。我尝试使用消极的前瞻断言,但没有成功:

ERROR\s+\[KUHOMNYXARCH\] \[ [0-9]+\] \[[0-9a-f\-]+\] (?!(\[MultiFormatRoiStreamer\.GetImageRoi\]|\[ExceptionHandlingBehavior\.ProvideFault\]))
ERROR.+(?!(MultiFormatRoiStreamer|ExceptionHandlingBehavior))

对此有什么想法吗?

你可以用它来查找行

它使用多行模式
(?m)

扩大:

 (?m)
 ^ 
 .*? 
 ERROR [^\S\r\n]+ 
 (?:
      (?!
           MultiFormatRoiStreamer\.GetImageRoi
        |  ExceptionHandlingBehavior\.ProvideFault
      )
      . 
 )+
 $

您可以使用此命令查找行

它使用多行模式
(?m)

扩大:

 (?m)
 ^ 
 .*? 
 ERROR [^\S\r\n]+ 
 (?:
      (?!
           MultiFormatRoiStreamer\.GetImageRoi
        |  ExceptionHandlingBehavior\.ProvideFault
      )
      . 
 )+
 $

你能把日志条目的字段分开并检查相应的字段吗?@AndrewMorton把字段分开是什么意思?这是从生产站点检索的平面文本文件。如果字段由制表符分隔,请使用字符串拆分函数获取字段数组。如果字段是固定宽度的,则使用子字符串函数提取行的适当部分。您在什么环境中使用正则表达式?您能将日志条目的字段分开并检查适当的字段吗?@AndrewMorton将字段分开是什么意思?这是从生产站点检索的平面文本文件。如果字段由制表符分隔,请使用字符串拆分函数获取字段数组。如果字段是固定宽度的,则使用子字符串函数提取行的适当部分。您在什么环境下使用正则表达式?