收藏本页
切换浏览模式

微波家园论坛微波程序设计FORTRAN,VB程序设计 → [转帖]vb 正则表达式(4)——字符类

关闭 帖子评论
选取类型: 中立 支持 反对
观点标题:
验证码: 验证码,看不清楚?请点击刷新验证码
观点内容:
(不支持HTML)
  1. 请以客观、真实地作出评论,并注意语言文明;
  2. 观点发表后不能作出更改;
您是本帖的第 618 个阅读者
树形 打印
标题: [转帖]vb 正则表达式(4)——字符类
wsn
帅哥哟,离线,有人找我吗?
头衔:微波班竹
等级:管理员
威望:30 点
文章:1389 篇
积分:4201 点
金钱:4369 元
金币:26 枚
魅力:4330 点
注册:2006年7月15日
近访:2009-1-3 18:51:00
发贴心情
[转帖]vb 正则表达式(4)——字符类
vb 正则表达式(4)——字符类

字符类是正则表达式中的“迷你”语言,在方括号 [ ] 中定义。最简单的字符类只不过是括号中的一个字符表,如 [aeiou]。在表达式中使用字符类时,可在模式的此位置使用其中任何一个字符(但只能使用一个字符,除非使用了限定符)。请注意,不能使用字符类定义单词或模式,只能定义单个字符。

要指定任何数值数字,可以使用字符类 [0123456789]。但是,由于这样使用字符不大方便,所以要通过在括号中使用连字符 - 来定义字符的范围。连字符在字符类中有特殊的含义(不是在正则表达式中,因此,准确地说它不能叫正则表达式元字符),且仅在连字符不是第一个字符时,连字符才在字符类中有特殊含义。要使用连字符指定任何数值数字,可以使用 [0-9]。小写字母也一样,可以使用 [a-z],大写字母可以使用 [A-Z]。连字符定义的范围取决于使用的字符集。因此,字符在(例如)ASCII 或 Unicode 表中出现的顺序确定了在范围中包括的字符。如果需要在范围中包括连字符,将它指定为第一个字符。例如:[-.?] 将匹配 4 个字符中任何一个字符(注意,最后的字符是个空格)。另请注意,正则表达式元字符在字符类中不做特殊处理,所以这些元字符不需要转义。考虑到字符类是与其他正则表达式语言分开的一种语言,因此字符类有自己的规则和语法。

如果使用字符 ^ 作为字符类的第一个字符来否定此类,也可以匹配字符类成员以外的任何字符。因此,要匹配任何非元音字符,可以使用字符类 [^aAeEiIoOuU]。注意,如果要否定连字符,应将连字符作为字符类的第二个字符,如 [^-]。记住,^ 在字符类中的作用与它在正则表达式模式中的作用完全不同。
模式输入(匹配)说明
^b[aeiou]t$Bat、bet、bit、bot、but^b表示以b开头的字符串,[aeiou]表示必须包含aeiou中的任何一个;t$表示必须以t结尾,所以bat、bet都可以,但bate,bct不可以
^[0-9]{5}$11111, 12345, 99999^[0-9]{5}表示以0到9之间的任意字符5个开头,[0-9]{5}$表示以0到9之间的任意字符5个结尾,所以匹配11111,12345,但是不匹配123456
^c:\\c:\windows、c:\\\\\、c:\foo.txtc:\ 后跟任何其他内容
abc$abc、123abc、以 abc 结束的任意字符串
(abc){2,3}abcabc、abcabcabc包含两个abc或者三个abc
^[^-][0-9]$0、1、2、...(不匹配 -0、-1、 -2 等)
[^-ab]匹配ca,dc,不匹配c-注意如果要否定连字符,应将连字符作为字符类的第二个字符象本例中不能写成[^a-b]

vb实例:

Private Sub Command1_Click()
Dim re As New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = "[^-ab]" '这个就是正则表达式
Debug.Print re.Replace("d-", "play78") '输出play78-
End Sub



爱你 却说不出口
想你 却是独自心痛
念你 却只能寄语风中
梦你 却寻不回你的影子
等你 却不敢面对你的眼眸
ip地址已设置保密
2008-6-3 14:29:00
回到顶部

WWW.MWHRF.COM
Powered by 微波家园论坛
备案序号: ICP备06045115号