我必须为要搜索的段落中的文本编写VBScript,并找出最后一个位置的文本位置。
假设,如果句子是:
This is my first paragraph and my first try
我将不得不找出"my"
的位置,然后第一个位置将是9而第二个位置将是32.但不是打印32,我必须从9开始打印下一个位置当我执行这段代码时,我得到结果9和32。
Dim X,i
For i=1 to 10
X=Instr(i, "This is my first paragraph and my first try", "my", 1)
i=X+1
msgbox i
Next
这里的问题是For
间隔循环!我必须根据要搜索的文本调整For
循环。可以使用恒定间隔来完成吗?这将打印值9和32,但我需要将后一个值打印为23。
答案 0 :(得分:2)
以下是几个选项。
使用Const SOME_TEXT = "This is my first paragraph and my first try"
Dim intPos, intLast
intPos = InStr(1, SOME_TEXT, "my")
Do While intPos > 0
WScript.Echo intPos - intLast
intLast = intPos
intPos = InStr(intPos + 1, SOME_TEXT, "my")
Loop
循环:
FirstIndex
使用正则表达式并利用Match
对象的Dim re
Set re = New RegExp
re.Pattern = "\bmy\b"
re.Global = True
Dim m, i
Set m = re.Execute("This is my first paragraph and my first try")
For i = 0 To m.Count - 1
If i = 0 Then MsgBox m(i).FirstIndex + 1 Else MsgBox m(i).FirstIndex - m(i-1).FirstIndex
Next
属性:
root_path