【问题标题】:RegEx for value 0.1 to 100.00值 0.1 到 100.00 的正则表达式
【发布时间】:2015-10-21 00:02:48
【问题描述】:

查看 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>

【问题讨论】:

  • 谢谢诚。我很尊重你的意见。毕竟我没有经验,你有。然而,说别无选择,对没有经验的人帮助不大:)
  • 所以...链接底部的答案建议您改用 XML 解析器。或者,至少,比正则表达式更适合这种数据格式的其他解析器。

标签: regex


【解决方案1】:

必须有比这更短的版本,但这应该可以。

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 解析工具。

【讨论】:

  • 谢谢亚历山大鸟。 Leow Kah Man 的答案就是我想要的。供将来参考,您知道任何好的 XML 解析命令行工具吗?不超过几个文件可以快速下载以用于解析文件并传递结果?
  • 当然,我最近查看了answer this question,发现this post 提供了几个用于执行XPATH searches 的命令行工具。
【解决方案2】:

我不知道 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 上的第一个答案

【讨论】:

  • @Makoto,感谢您的反馈。我已修改查询以满足查询条件
  • 谢谢廖家文。这是我关于stackoverflow的第一个问题:)。你明白了(第二个选项,不是吗?)。 LabTech 有一个内置的 RegEx Helper 来测试查询,你的工作就像一个魅力 :) LabTech 是 LabTechSoftware.com 的 RMM(远程监控和管理)工具。正在进行中,但潜力巨大。我们使用 HitmanPro 进行第二意见 AV/恶意软件检测。这将帮助我们减少误报。非常感谢!
  • 它们都能满足您的需求。一个对我来说更容易看到 - 只是个人直觉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-28
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多