Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 日志分析器蜥蜴(MS日志分析器)忽略正则表达式_Regex_Xml_Logging_Regex Negation - Fatal编程技术网

Regex 日志分析器蜥蜴(MS日志分析器)忽略正则表达式

Regex 日志分析器蜥蜴(MS日志分析器)忽略正则表达式,regex,xml,logging,regex-negation,Regex,Xml,Logging,Regex Negation,第一个问题,所以要温柔 我是一名雷杰克斯学徒。我只是浅尝辄止。我正在实验LizardLabs的日志解析器Lizard。我正在编写一个XML,应用程序使用MS Log Parser将正则表达式应用于日志文件,以在漂亮的GUI中返回结果。XML包含您定义为字段的标记,所以请原谅这些凌乱的代码,但这是它想要的 <regex>\s{1,}(?&lt;PID&gt;(.*))\((?&lt;TID&gt;(.*))\)\s{1,}(?&lt;DATE&a

第一个问题,所以要温柔

我是一名雷杰克斯学徒。我只是浅尝辄止。我正在实验LizardLabs的日志解析器Lizard。我正在编写一个XML,应用程序使用MS Log Parser将正则表达式应用于日志文件,以在漂亮的GUI中返回结果。XML包含您定义为字段的标记,所以请原谅这些凌乱的代码,但这是它想要的

<regex>\s{1,}(?&lt;PID&gt;(.*))\((?&lt;TID&gt;(.*))\)\s{1,}(?&lt;DATE&gt;(\d{2}\/\d{2}\/\d{4}))\s{1,}(?&lt;TIME&gt;(\d{2}:\d{2}:\d{2}))\s{1,}(?&lt;CLASS&gt;([A-Z][^\s]{1,}))\s{1,}(?&lt;TYPE&gt;(.{1}))\s{1,}(?&lt;MESSAGE&gt;(.{1,})).*</regex>
  <fields>
  <field name="PID" type="String" />
  <field name="TID" type="String" /> 
  <field name="DATE" type="String" />
  <field name="TIME" type="String" />
  <field name="CLASS" type="String" />
  <field name="TYPE" type="String" />
  <field name="MESSAGE" type="String" />
</fields>
两者似乎都没有让它忽略这一行并继续匹配


我做错了什么?更复杂的是,在我的第二个示例中,使用普通正则表达式而不通过这个应用程序运行它似乎可以正常工作。是应用程序不知道如何进行这些忽略匹配的错误吗?

正则表达式中有一些奇怪的东西

\{1,}看起来你想用空格作为分隔符,但实际上你说的是1或0个空格

?[A-Z][^\s]{1,}类是一个单字母,例如“J”,后跟1或0个非空格字符

如果没有日志本身的格式,我帮不了你更多,但它看起来应该是这样的: \s*?[^\s]*\?[^\s]*\\s?\d{2}\/\d{2}\/\d{4}\s?\d{2}:\d{2}:\d{2}\s?[^\s]*\s?[^\s]*\s*

(?&lt;CLASS&gt;([^JGroups][A-Z][^\s]{1,}))
(?&lt;CLASS&gt;((?!JGroups([A-Z][^\s]{1,})))