使用 vbscript 从特定字符串中获取子字符串
Get substring from specific string using vbscript
我是 VBScript 的新手,有以下任务:
Get substring from specific string using 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,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.Value
Next
但我没有得到我真正需要的东西:Test.doc
,Test2222.docx
。看来我不明白正则表达式特定符号是如何工作的。
你能帮我完成这个任务吗?
提前致谢!
您可以这样修改代码:
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)
。
我是 VBScript 的新手,有以下任务:
Get substring from specific string using 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,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.Value
Next
但我没有得到我真正需要的东西:Test.doc
,Test2222.docx
。看来我不明白正则表达式特定符号是如何工作的。
你能帮我完成这个任务吗?
提前致谢!
您可以这样修改代码:
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)
。