我正在扫描计算机上某些已安装程序的文本文档,并寻找一种简单的方法来在我正在扫描的字符串中包含大于或小于变量。这是我目前正在使用的一个非常丑陋和繁琐的示例,虽然它可以作为临时修复,但不实用或不可持续。
If CheckBox2.Checked Then
sReader.Close()
If text.Contains("Adobe Flash Player 11 Plugin") And
text.Contains("Adobe Flash Player 11 ActiveX") Then
Else
If text.Contains("Adobe Flash Player 12 Plugin") And
text.Contains("Adobe Flash Player 12 ActiveX") Then
Else
If text.Contains("Adobe Flash Player 13 Plugin") And
text.Contains("Adobe Flash Player 13 ActiveX") Then
Else
'(Goes ahead and does a silent install of the missing or outdated program)
到目前为止,我在使用 Adobe Flash 和 Java RTE 时都遇到了这个问题,并且肯定会在未来的程序中遇到这个问题。基本上我需要扫描“Adobe Flash Player(任何小于 11 的数字)插件”、“Adobe Flash Player(任何小于 11 的数字)ActiveX”、“Java(小于 9 的数字)更新(任何数字)”。
我确信所提供的任何解决方案都可能适用于我以后可能会遇到的类似程序。谢谢
- - - 编辑 - - -
我已经尝试了以下代码,但它总是返回“找到”消息框,即使它正在扫描的文件中没有 adobe flash 版本。
If CheckBox2.Checked Then
sReader.Close()
Dim options As RegexOptions = RegexOptions.None
Dim regex As Regex = New Regex("Adobe Flash Player (?<version>\d+) (Plugin|ActiveX)", options)
Dim input As String = "Adobe Flash Player 11 Plugin"
' Get match
Dim match As Match = regex.Match(input)
Dim version As String = match.Groups("version").Value
If (match.Success) Then
MessageBox.Show("Version 11 or higher found, skipping install")
Else
MessageBox.Show("Version 11 or higher not found, installing Version 11")