编写选择VBScript类及其名称的正则表达式

时间:2015-07-14 05:02:37

标签: regex vbscript

我正在编写一个正则表达式,它选择一个VBScript类及其名称。目前这是它的样子。

正则表达式:

Class\s*[a-zA-Z0-9_]*

enter image description here

实时代码演示: http://regexr.com/3bco8

没关系,但我想修改一下,以便它只选择" Class Person"而不是在文本末尾选择单词class

1 个答案:

答案 0 :(得分:4)

两个*量词应替换为+一个或更多)。使用.Multiline标志,在开始时锚定并捕获类名可能是个好主意。是否要在Class之前允许前导空格:

Option Explicit

Dim s : s = Join(Array( _
    "' Class ForgetIt" _
  , "whatever" _
  , " Class FindIt" _
  , "whatever" _
  , "End Class ' FindIt" _
  , "s = ""Class NotMe""" _
  , "CLASS MeToo" _
  , "End Class" _
), vbCrLf)
Dim r : Set r = New RegExp
r.Global = True
r.IgnoreCase = True
r.Multiline = True
r.Pattern = "^\s*Class\s+(\w+)+"
Dim m
For Each m In r.Execute(s)
    WScript.Echo m.SubMatches(0)
Next

输出:

cscript 31398009.vbs
FindIt
MeToo