查看由HitManPro创建的xml文件,我可以看到很多像这样的条目;
[Item type="Malware" malwareName="Trojan" score="0.0" status="None"]
这是误报。
我想将脚本(LabTech)中使用的现有RegEX查询替换为可以查找类似内容的查询;
score="5.1" up to score="999.0"
我是Reg Ex查询的新手,我在搜索字符串score=" "
中的数字时遇到问题。
非常感谢任何帮助。以下是来自hitmanPro的示例XML
的问候, 奥斯卡罗梅罗
<br>
HitmanPro Scan Completed Successfully.
Threats Found!
<hr>
Scan Date: 2015-10-17T15:16:31<BR>
<p>"
[Log computer="computer name" windows="6.1.1.7601.X64/12" scan="Normal" version="3.7.9.246" date="2015-10-17T15:16:31" timeSpentInSecs="125" filesProcessed="15922"]
[Item type="Malware" malwareName="Malware" score="90.0" status="None"]
[Scanners]
[Scanner id="Bitdefender" name="Gen:Variant.Kazy.751212" /]
[/Scanners]
[File path="C:\Program Files (x86)\ESET\ESET Remote Administrator\Server\era.exe" hash="F7BB46D48B994539AFD400641CE8E4F85114FC7BA05A1BAA0D092F3A92817F13" /]
[Startup]
[Key path="HKLM\SYSTEM\CurrentControlSet\Services\ERA_SERVER\" /]
[/Startup]
[/Item]
[/Log]
"</p>
答案 0 :(得分:0)
我对LabTech不知道。
无论如何,您可以使用正则表达式查询:
\sscore="((?:5\.[1-9])|(?:[6-9]\.[0-9])|(?:[1-9]{1}[0-9]{1,2}\.[0-9]))"\s
或
\sscore="(5\.[1-9]|[6-9]\.[0-9]|[1-9]{1}[0-9]{1,2}\.[0-9])"\s
如果您不喜欢(?:...)
更新: 好的,我做了进一步的修改以支持最低5.1,最高999.9
PS:这是我在StackOverflow上的第一个答案
答案 1 :(得分:0)
必须有比这更短的版本,但这应该有效。
score="(0\.[1-9]|[1-9]\.[0-9]|[1-9][0-9]\.[0-9]|[1-9][0-9][0-9]\.[0-9])"
0.1
1.0
10.4
100.9
100.0
999.9
99.9
9.9
(etc.)
0.0
0
(etc.)
至于正则表达式是否适合这项工作,我可能同意@Makoto它不是 - 除非您作为一个FYI快速扫描结果,而不是过滤结果作为更大工具或应用程序的一部分。换句话说,除了最简单的情况,我同意@Makoto你想要一些xml解析工具。