内容如下:
Subject:
Security ID: S-1-5-21-3368353891-1012177287-890106238-22451
Account Name: ChamaraKer
Account Domain: JIC
Logon ID: 0x1fffb
Object:
Object Server: Security
Object Type: File
Object Name: D:\ApacheTomcat\apache-tomcat-6.0.36\logs\localhost.2013-07-01.log
Handle ID: 0x11dc
我需要捕获该行中Object Name:
单词后面的单词,即D:\ApacheTomcat\apache-tomcat-6.0.36\logs\localhost.2013-07-01.log
。
我该怎么做?^.*\bObject Name\b.*$
匹配项-对象名称
6条答案
按热度按时间ovfsdjhp1#
但我需要比赛结果......不在比赛组......
对于您尝试做的事情,这应该是可行的。
\K
重置匹配的起点。您可以使用相同的方法来获取
Security ID
匹配。deyfvvtc2#
如果您使用的regex引擎不支持
\K
,则以下方法应该适用:Working example
您所需的匹配项将位于捕获组1中。
类似,但不允许出现诸如“blah Object Name:blah”,并确保如果“Object Name:“之后没有实际内容,则不捕获下一行
wdebmtf23#
您几乎可以做到这一点。使用以下正则表达式(启用多行选项)
完整的匹配将是
而被捕获的组1将包含
如果要直接捕获文件路径,请使用
kyks70gy4#
根据您使用的语言,这可能对您有用:
这是一个肯定的lookbehindAssert。可以在here中找到更多信息。
但是它不能和JavaScript一起使用。在你的评论中我读到你在logstash中使用了它。如果你在logstash中使用GROK解析,那么它就可以工作。你可以在这里自己验证一下:
kuarbcqp5#
这是一个Python解决方案。
o3imoua46#
下面是一个快速的Perl脚本,它需要一些空格。