我正在扫描计算机上某些已安装程序的文本文档,并寻找一种在我正在扫描的字符串中包含大于或小于变量的简单方法。这是我目前正在使用的一个非常丑陋和繁琐的例子,虽然它作为一个临时修复,但是不实用或不可持续。
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)更新(任意数字)”。< / p>
我确信提供的任何解决方案都可能适用于我稍后可能会遇到的类似程序。感谢
-----编辑-----
我已经尝试了以下代码,但它总是会返回“Found”消息框,即使它正在扫描的文件中没有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")
答案 0 :(得分:1)
如果您可以相当确信字符串将始终具有相同的格式,则可以使用正则表达式查找匹配项并获取版本号。
编辑:
以下是代码段:
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
“version”变量现在包含版本号
干杯
答案 1 :(得分:0)
您可能想尝试使用正则表达式来匹配。
或许这样的事情:
Dim regex As Regex = New Regex("Adobe Flash Player \d+ (Plugin|ActiveX)")
Dim match As Match = Regex.Match(input_to_match_against)
if(match.Success){
' do something here
Dim version as String = m.Groups(1).Value ' Will give you the version of Adobe
}
如果代码不能正常工作,我很抱歉,我正在翻译从未使用过VB的C#。
也可能有助于构建您的Regular Expression Cheat Sheet。它适用于C#,但由于您使用的是.NET,我希望正则表达式语法应该完全相同。