2015-02-24 146 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