我无法弄清楚这个正则表达式有什么问题

时间:2014-04-29 16:02:42

标签: regex vbscript

所以我写了下面的vbscript来读取命令行输出的文件。该文件的内容只是(COMx),x是相关设备的端口号。该脚本应该读取该文件并拔出' x'并将其保存到新的文本文件。我大约两周前写了这篇文章并对其进行了测试,但它确实有效。现在看来,无论我做什么,我都无法完成工作。这与两周前的IT工作一样令人费解。现在它只是创建一个没有任何内容的输出文件。我不知道我是不是意外地改变了什么或什么,但任何帮助都会受到赞赏。

Const ForReading = 1  
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile("C:\rtlstuff\COM.txt", ForReading)  
strContents = objFile.ReadAll  
objFile.Close  

Set regex = New RegExp 
    With regex 
        .Pattern = ".*\(COM(.+)?\).*" 
    End With 

Dim ComPort 
If regex.Test(strContents) Then 
    ComPort = regex.Replace(strContents,"$1") 
End If 

Set objFSO=CreateObject("Scripting.FileSystemObject") 
outFile="c:\rtlstuff\ComPort.txt" 
Set objFile = objFSO.CreateTextFile(outFile,True) 
objFile.Write ComPort 
objFile.Close 

1 个答案:

答案 0 :(得分:0)

正则表达式似乎有点矫枉过正。如果您知道该行只包含" COMx",为什么不使用这些方法之一?

' Option 1: Start at the 4th char...
strContents = Mid(objFile.ReadLine, 4)

' Option 2: Remove "COM" from the line...
strContents = Replace(objFile.ReadLine, "COM", "")