RegExp对象是VBScript中用于提供简单地正则表达式支持的对象。VBScript中所有和正则表达式有关的属性和方法都有这个对象有关联。

一、RegExp对象的属性和方法(三个属性,三个方法)

属性:

1. Global属性: True or False, 指明模式是匹配整个字符串中所有与之相符的地方还是只匹配第一次出现的地方。默认值是False(表示只匹配第一次出现的地方)。

2. IgnoreCase属性: True or False, 指明模式匹配是否大小写敏感。默认是False(表示搜索为大小写敏感)。

3. Pattern属性:设置或返回用于搜索的正则表达式。

方法:

1. Execute方法:将正则表达式应用到字符串上并返回Matches集合。

2. Replace方法:替换在正则表达式搜索中找到的文本。

3. Test方法:对字符串执行正则表达式搜索,并返回一个布尔值说明匹配是否成功(True:匹配成功, False:匹配不成功)。

二、VBScript中的正则表达式字符

字符 描述
\ 表示下一个字符是特殊字符或文字常量
^ 匹配输入的开头
$ 匹配输入的结尾
* 匹配前一个字符零次或多次
+ 匹配前一个字符一次或多次
? 匹配前一个字符零次或一次
. 匹配除换行符以外的任何单个字符
(pattern)

匹配并记住这个模式。可以用[0]…[n]从结果的matches集合中获取匹配到的字符串。要匹配括号本身,在前面加上斜杠-用"\("或"\)"

(?:pattern) 匹配但不捕获模式,也就是不会存储匹配结果供以后使用。这可以用于使用"or"字符(|)合并模式的不同部分。例如,"anomal(?:y|ies)"比"anomaly|anomalies"要划算得多
(?=pattern) 当所要搜索的字符串匹配了模式的开头部分时就接着匹配这一部分。非捕获匹配,也就是说不会保存匹配结果供以后使用。例如,"Windows (?=95|98|NT|2000|XP|Vista)"能匹配"Windows Vista"中的Windows而不能匹配"Windows 3.1"中的Windows
(?!pattern) 与上一个相反,这会匹配模式中没有出现的内容。非捕获匹配。例如,"Windows (?!95|98|NT|2000|XP|Vista)"能匹配"Windows 3.1"中的Windows而不能匹配"Windows Vista"中的Windows
x|y 匹配x或y
{n} 准确地匹配n次(n必须是一个非负整数)
{n,} 至少匹配n次(n必须是一个非负整数-注意结尾的逗号)
{n,m} 至少匹配n次,最多匹配m次(m和n必须都是非负整数)
[xyz] 匹配其中包括的任一个字符(xyz表示一个字符集)
[^xyz] 匹配其中不包括的字符(^xyz表示一个字符集的补集)
[a-z] 匹配指定范围内的字符(a-z表示字符的范围)
[^m-z] 匹配指定范围以外的字符(^m-z表示指定范围的补集)
\b 匹配一个单词边界,这个位置在单词和空格之间
\B 匹配一个非单词边界
\d 匹配数字。等价于[0-9]
\D 匹配非数字。等价于[^0-9]
\f 匹配换页符
\n 匹配换行符
\r 匹配回车符
\s 匹配空白,包括空格、制表符、换页符等。等价于"[\f\n\r\t\v]"
\S 匹配非空白的字符。等价于"[^\f\n\r\t\v]"
\t 匹配制表符
\v 匹配纵向制表符
\w 匹配字母、数字,以及下划线。等价于"[A-Za-z0-9_]"
\W 匹配非字符数字。等价于"[^A-Za-z0-9\_]"
\. 匹配.
\| 匹配|
\{ 匹配{
\} 匹配}
\[ 匹配[
\] 匹配]
\( 匹配(
\) 匹配)
$num 匹配num,其中num是正整数。返回匹配结果的引用
\n 匹配n,其中n是八进制转义符。八进制转义符的长度应为1、2或3
\uxxxx 匹配UNICODE形式的ASCII字符
\xn 匹配n,其中n是十六进制转义符。十六进制转义符必须是两位长度
\\ 匹配\

三、实例

1、验证电话号码输入:

Dim re, s, objMatch, colMatches
Set re = New RegExp
re.Pattern = "\([0-9]{3}\)[0-9]{4}-[0-9]{4}"
re.Global = True
re.IgnoreCase = True
s = InputBox("Enter your phone number in the following Format (XXX)XXXX-XXXX:")
If re.Test(s) Then
    MsgBox "Thank you!"
Else
    MsgBox "Sorry but that number is not in a valid format."
End If

2、分解URI:将URI分解成协议(如ftp、http等)、域名地址、页面和路径四个部分。

Dim re, s 
Set re = New RegExp
re.Pattern = "(\w+):\/\/([^/:]+)(:\d*)?([^#]*)"
re.Global = True
re.IgnoreCase = True
s = "http://www.wrox.com:80/misc-pages/support.shtml"
MsgBox re.Replace(s, "$1")
MsgBox re.Replace(s, "$2")
MsgBox re.Replace(s, "$3")
MsgBox re.Replace(s, "$4")

3. 检查HTML元素: "<(.*)>.*<\/\1>"

4. 匹配空白: "^[\t]*$"

5. 匹配HTML注释标签: "^.*<!--.*—>.*$"

将上述匹配模式稍作修改,匹配HTML注释标签并清除HTML注释:

Dim re, s
Set re = New RegExp
re.Pattern = "(^.*)(<!--.*-->)(.*$)"
re.Global = True
s= "<title>A Title</title><!-- a title tag -->"
If re.Test(s) Then
    MsgBox "HTML comment tags found."
Else
    MsgBox "No HTML comment tags found."
End If
MsgBox re.Replace(s,"$1" & "$3")

参考资料:《VBScript程序员参考手册》

转载于:https://www.cnblogs.com/ITGirlXiaoXiao/p/3173651.html

VBScript: 正则表达式(RegExp对象)相关推荐

  1. JavaScript 正则表达式(RegExp对象、属性、方法、String支持)

    内容来源:JavaScript RegExp 对象参考手册    http://www.w3school.com.cn/js/jsref_obj_regexp.asp RegExp 对象 RegExp ...

  2. 正则表达式RegExp对象

    1. 2. 3. 4. 5. 转载于:https://www.cnblogs.com/xsffliu/p/6809037.html

  3. 正则表达式对象和RegExp对象

    正则表达式对象和RegExp对象 正则表达式对象保存用于查找字符串中的字符组合时的模式.创建正则表达式对象后,或者它被传递给字符串方法,或者字符串被传递给一个正则表达式方法.有关最近进行查找的信息被保 ...

  4. javascript类型系统——正则表达式RegExp类型

    原文:javascript类型系统--正则表达式RegExp类型 × 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法 ...

  5. JS安全域名验证,安全域名效验,安全域名检查,正则表达式RegExp检查域名,截取字符串检查域名,检查域名url前缀的域名部分是否包含指定域名

    JS安全域名验证,安全域名效验,安全域名检查,正则表达式RegExp检查域名,截取字符串检查域名,检查域名url前缀的域名部分是否包含指定域名 安全域名列表 var DomainArray=['run ...

  6. 【JS】javascript正则表达式的基本使用(JavaScript RegExp 对象)

    javascript正则表达式的基本使用(JavaScript RegExp 对象) 1. 正则表达式是什么? 2. 基本使用语法 2.1 正则表达式思维导图 2.2 定义正则表达式 2.2.1 普通 ...

  7. Js中RegExp对象

    Js中RegExp对象 RegExp对象表示正则表达式,是由普通字符和特殊字符也叫元字符或限定符组成的文字模板,用于对字符串执行模式匹配. 描述 创建一个RegExp对象通常有两种方式,一种是通过字面 ...

  8. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  9. JavaScript学习(十三)---RegExp对象

    目录 创建RegExp对象 1.使用RegExp的显式构造函数 2.使用RegExp的隐式构造函数,采用纯文本格式 RegExp对象的属性 静态属性: index属性: input属性: lastIn ...

  10. JavaScript标准库系列——RegExp对象(三)

    目录 导语 1.理解正则表达式 2.模式的规则 3.字符串和正则实例的属性和方法 4.检索实例 5. 小结 导语 正则表达式是处理字符串的一门艺术手法,应用场景经常出现在表单验证部分: JavaScr ...

最新文章

  1. web报表移动端如何进行移动设备绑定与撤销
  2. EasyUI DateTimeBox设置默认时间的注意点
  3. Java 里的 abstract 和 final 关键字
  4. 做毕设时遇到的一些问题,以及一些小技巧
  5. 【模电基础】滤波电容的选择
  6. int类型存小数 mysql_MySQL基本数据类型
  7. h5端呼起摄像头扫描二维码并解析
  8. django命令行常见
  9. 蓝桥杯 入门训练 Fibonacci数列
  10. Linux中的samba服务和ftp服务
  11. [C++]2-3 倒三角形
  12. MFC 激活CPropertySheet 的应用按钮
  13. java菜鸟突破面试系列-终章
  14. 数据结构:C#语言与面向对象技术(1)
  15. 深信服2023秋季校园招聘C++笔试A卷
  16. JAVA WEB 入门基础第一天
  17. 模拟算法考试训练题和答案1
  18. Leetcode C语言 “加一”
  19. 项目管理资格认证PMP考前培训班
  20. 2007热点技术职位排行及点析

热门文章

  1. 在LaTeX中添加Visio绘图
  2. 基于IMAP的邮件收发系统
  3. Python 基础学习Chapter6
  4. JDBC单独了解一下
  5. 安卓手机通过抓包实现钉钉网课刷赞
  6. 13个开源GIS软件
  7. GAN的目标函数(F散度;KL散度;JS散度;Pearson \chi^2 散度;IPM;Wasserstein距离;MMD)
  8. MySQL数据库 单表数据记录查询
  9. hive窗口函数和hive基础使用
  10. Win10 台式机机箱前置耳机插孔没声音如何修复