子串的相对位置

时间:2015-09-08 17:48:35

标签: string vbscript

我必须为要搜索的段落中的文本编写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。

1 个答案:

答案 0 :(得分:2)

以下是几个选项。

  1. 使用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
  2. 使用正则表达式并利用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