我有一个文本文件,包含区域转移的结果&需要读取每一行&将其拆分成数组以输出服务器名称列表& IP地址。不过,我在分割数据时遇到了一些问题,因为我对空格分隔符的尝试似乎没有按照我想要的那样做。使用正则表达式分隔文本文件内容的分隔符?
样品输入:
machine1.fqdn.com. 86400 IN A 192.168.1.10
machine2.fqdn.com. 86400 IN A 192.168.1.11
machine3.fqdn.com. 86400 IN A 192.168.1.12
machine4.fqdn.com. 86400 IN A 192.168.1.13
脚本:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("I:\testHarvestIF.txt", ForReading)
Const ForReading = 1
Do Until objFile.AtEndOfStream
strNextLine = objFile.Readline
arrServiceList = Split(strNextLine," ",-1,1)
Wscript.Echo "Server name: " & arrServiceList(0) & vbCrLF & _
" - IP Address: " & arrServiceList(2)
Loop
objFile.Close
电流输出:
Server name: machine1.fqdn.com.
IP Address: IN A 192.168.1.10
Server name: machine2.fqdn.com.
IP Address: IN A 192.168.1.11
Server name: machine3.fqdn.com.
IP Address: IN A 192.168.1.12
Server name: machine4.fqdn.com.
IP Address: IN A 192.168.1.13
希望的输出:
Server name: machine1.fqdn.com.
IP Address: 192.168.1.10
Server name: machine2.fqdn.com.
IP Address: 192.168.1.11
Server name: machine3.fqdn.com.
IP Address: 192.168.1.12
Server name: machine4.fqdn.com.
IP Address: 192.168.1.13
有什么方法可以使用正则表达式来使用任意长度的空白作为分隔符?例如。
arrServiceList = Split(strNextLine,"^\s+",-1,1)
预先感谢您可以提供任何帮助。
问候,
RB
对于我之前的回答,我很抱歉。我看着它,结果vbscript不支持从Match对象中提取捕获组。 (<-verify我) – Untitled 2012-03-30 12:48:50
设置objFSO =的CreateObject( “Scripting.FileSystemObject的”) 集OBJFILE = objFSO.OpenTextFile( “I:\ test.txt的”,ForReading的) CONST ForReading的= 1 功能splitRE(strSource,图案) 用的CreateObject( “vbscript.regexp”) 。全球=真 .Pattern =模式 splitRE =斯普利特(.Replace(strSource, “ ”),“”) 尾随着 端功能 做,直到OBJFILE。 AtEndOfStream strNextLine = objFile.Readline arrServiceList = splitRE(strNextLine,“\ s +”) Wscript.Echo“服务器名称:”&arrServiceLis t(0)&“ - IP Address:”&arrServiceList(4) Loop objFile.Close – Pr0m3th3us 2012-03-30 13:25:36