VBS中的模式匹配

时间:2015-02-24 20:06:09

标签: string vbscript matching

将此作为参考:https://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2

我一直在试图弄清楚如何创建一个模式来拉动它:

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

我尝试了很多不同的组合,但我甚至都没有......

例如,基于我正在阅读的内容,似乎()应该抓取字面值,\ alphanumeric应该抓取尾随数字和字母并在'之前停止'(因为它不是数字或字母)...失败: “(LicenseDetail.asp SID =&安培;?ID =)\字母数字”

提前致谢。

1 个答案:

答案 0 :(得分:1)

(1)重新阅读语法细节(例如“\ alpanumeric”)

(2)搜索“LicenseDetail”+“everthing not a'”

在代码中:

  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

更新评论:

我没有任何线索,当他们点击文件时引用双引号,但我知道为什么[^"]'不起作用':在VBScript中,“字符串文字被”“转义。”代码:< / p>

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

(转到here查看正则表达式模式操作中的否定(双)引号。)

相关问题