使用vbscript从特定字符串获取子字符串

我是VBScript的新手,并具有以下任务:

  

使用vbscript从特定字符串获取子字符串。

源字符串

one two alksdjfkl <b> sdklifjklsdjf </b> <b:FileName>Test</b:FileName> jsdhfj rutyier x,mcvn,mcx </b> <b:FileName>Test2222.docx</b:FileName> mvbn,cmvb eiurtyeiurty

我需要在和之间获取内容 我尝试了以下操作:

Set objRegExp = CreateObject("VBScript.RegExp")
Str = "one two alksdjfkl <b> sdklifjklsdjf </b> <b:FileName>Test</b:FileName> jsdhfj rutyier x,cmvb eiurtyeiurty"
objRegExp.Global = True
objRegExp.Pattern = "^<b:FileName>*</b:FileName>$"
Set objMatches = objRegExp.Execute(Str)
msgbox objMatches.Count
    For i = 0 To objMatches.Count - 1
       Set Match = objMatches.Item(i)
        msgbox Match.Value
    Next

但是我没有得到我真正需要的东西:Test.docTest2222.docx。看来我不明白正则表达式特定符号的工作方式。 您能帮我完成这个任务吗? 预先感谢!

wubinke6108 回答:使用vbscript从特定字符串获取子字符串

您可以这样修改代码:

Dim str
Set objRegExp = new RegExp
str = "one two alksdjfkl <b> sdklifjklsdjf </b> <b:FileName>Test</b:FileName> jsdhfj rutyier x,mcvn,mcx </b> <b:FileName>Test2222.docx</b:FileName> mvbn,cmvb eiurtyeiurty"
objRegExp.Global = True
objRegExp.Pattern = "<b:FileName>(.*?)</b:FileName>"
Set objMatches = objRegExp.Execute(str)
MsgBox objMatches.Count
For i = 0 To objMatches.Count - 1
    Set Match = objMatches.Item(i)
    MsgBox Match.SubMatches(0)
Next

注释

  • <b:FileName>(.*?)</b:FileName>是正则表达式,它匹配并捕获除<b:FileName></b:FileName>之间的换行符以外的任何0个或多个字符,并进入组1
  • 要访问“组1”值,请使用Match.SubMatches(0)
本文链接:https://www.f2er.com/3051756.html

大家都在问