2015-02-24 147 views
0

使用此作爲參考:https://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2模式匹配VBS

我一直在試圖找出如何創建一個模式來完成這?

LicenseDetail.asp SID = & ID = F1A32D21A83C2BB2BBF227E5443A6023

出於此:

height='40'><td colspan='1' width='20%' align='center'bgcolor='#e9edf2'><font face=verdana color=#000000 size=-1>Real Estate Broker or Sales</font></td><td colspan='1' align='center' bgcolor='#e9edf2'><font face=verdana color=#000000 size=-1><a href='LicenseDetail.asp?SID=&id=F5A76372AAA358B9CD869630255FA424'>ALMEIDA, JOHN SOBRAL</a></font></td 

我已經嘗試了許多不同的連擊,但我還差得遠呢...

例如,基於我正在閱讀的內容,似乎()應該抓住文字並且\字母數字應該抓住尾隨數字和字母並在'(因爲它不是數字或字母)之前停下來。 .fail: 「(LicenseDetail.asp?SID = & id =)\ alphanumeric」

在此先感謝。

回答

1

(1)重新讀取語法的詳細信息(例如, 「\ alpanumeric」)

(2)搜索 「LicenseDetail」 + 「寄託都不是「」

在代碼:

Dim s : s  = "height='40'><td colspan='1' width='20%' align='center'bgcolor='#e9edf2'><font face=verdana color=#000000 size=-1>Real Estate Broker or Sales</font></td><td colspan='1' align='center' bgcolor='#e9edf2'><font face=verdana color=#000000 size=-1><a href='LicenseDetail.asp?SID=&id=F5A76372AAA358B9CD869630255FA424'>ALMEIDA, JOHN SOBRAL</a></font></td" 
    Dim r : Set r = New RegExp 
    r.Pattern = "LicenseDetail[^']+" 
    Dim m : Set m = r.Execute(s) 
    If 1 = m.Count Then 
    WScript.Echo m(0).Value 
    Else 
    WScript.Echo "Bingo!" 
    End If 

輸出:

LicenseDetail.asp?SID=&id=F5A76372AAA358B9CD869630255FA424 

更新WRT評論:

我不知道爲什麼[^"]'不起作用':在VBScript中,「在字符串文字中被轉義」「。在代碼:

>> s = "name=""escapedquote""" 
>> Set r = New RegExp 
>> r.Pattern = """" 
>> WScript.Echo s, r.Replace(s, "'") 
>> 
name="escapedquote" name='escapedquote" 
>> 

(去here看到否定(雙)在正則表達式模式動作報價)

+0

你說得對,我錯過了字母數字的「文字」的一部分。這工作出色!你做得比我想象的要簡單得多。謝謝! – Drivium 2015-02-24 20:30:36