的VBScript +正则表达式
问题描述:
Dim sString sString = "John;Mary;Anne;Adam;Bill;Ester"
是否有一个正则表达式我可以用它来检索从上面的列表如下:的VBScript +正则表达式
- 约翰(;在名称末尾)
- 安妮(;在起止)
- 酯(;开头)
我目前使用下面的正则表达式为每个:
1. Joh.* 2. .*An.* 3. .*st.*
但是,上述检索整个字符串,而不是我想要的值。我如何获得正确的值?
代码:
Dim oRegex : Set oRegex = New RegExp oRegex.Global = False oRegex.IgnoreCase = False 'John oRegex.Pattern = "Joh.*" Set oMatch = oRegex.Execute(sString) sName = oMatch(0)
上面的代码检索,而不是只有约翰整个字符串。同样的问题与其他:(
答
更简单的方法,在你的字符串做split()
,然后遍历列表得到你的东西,如
s = split(sString,";")
for i=Lbound(s) to Ubound(s)
' get your names
next
+0
谢谢ghostdog74。我不确定,因为字符串很大,使用Split会导致很大的性能开销。 – Karthik 2010-04-09 14:38:57
+0
它不应该是一个很大的性能开销。 – ghostdog74 2010-04-09 15:12:16
是例如oRegex.Pattern =“John;”,那么有一个原因,就是说,如果你知道你想要的确切名字,为什么不把它们当作模式使用呢?另外,“。*”匹配所有的东西,这就是为什么你会得到完整的字符串。 – dmb 2010-04-09 15:05:21