1 / 30
文档名称:

excelvba正则表达式入门.pdf

格式:pdf   大小:535KB   页数:30页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

excelvba正则表达式入门.pdf

上传人:gorynich 2022/5/22 文件大小:535 KB

下载得到文件列表

excelvba正则表达式入门.pdf

相关文档

文档介绍

文档介绍:: .
正则表达式 30h,后一个是 i。通常,处理正则表达式的工具
会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配
hi,HI,Hi,hI 这四种情况中的任意一种。
不幸的是,很多单词里包含 hi 这两个连续的字符,比如
him,history,high 等等。用 hi 来查找的话,这里边的 hi 也会被找出来。如
果要精确地查找 hi 这个单词的话,我们应该使用\bhi\b。
\b 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,
metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽
然通常英文的单词是由空格或标点符号或换行来分隔的,但是\b 并不匹配
这些单词分隔符中的任何一个,它只匹配一个位置。(如果需要更精确
的说法,\b 匹配这样的位置:它的前一个字符和后一个字符不全是(一个
是,一个不是或不存在)\w)
假如你要找的是 hi 后面不远处跟着一个 Lucy,你应该用
\bhi\b.*\bLucy\b。
这里,.是另一个元字符,匹配除了换行符以外的任意字符。*同样是
元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前
边的内容可以连续重复出现任意次以使整个表达式得到匹配。因此,.*连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b.*\bLucy\b 的意
思就很明显了:先是一个单词 hi,然后是任意个任意字符(但不能是换行),
最后是 Lucy 这个单词。
如果同时使用其它的一些元字符,我们就能构造出功能更强大的正
则表达式。比如下面这个例子:
0\d\d-\d\d\d\d\d\d\d\d 匹配这样的字符串:以 0 开头,然后是两个数
字,然后是一个连字号“-”,最后是 8 个数字(也就是中国的电话号码。
当然,这个例子只能匹配区号为 3 位的情形)。
这里的\d 是一个新的元字符,匹配任意的数字(0,或 1,或 2,
或„„ )。-不是元字符,只匹配它本身——连字号。
为了避免那么多烦人的重复,我们也可以这样写这个表达式:
0\d{2}-\d{8}。 这里\d 后面的{2}({8})的意思是前面\d 必须连续重复匹配 2
次(8 次)。
测试正则表达式
如果你不觉得正则表达式很难读写的话,要么你是一个天才,要
么,你不是地球人。正则表达式的语法很令人头疼,即使对经常使用它
的人来说也是如此。由于难于读写,容易出错,所以很有必要创建一种
工具来测试正则表达式。
由于在不同的环境下正则表达式的一些细节是不相同的,本教程介
绍的是 Microsoft .Net 下正则表达式的行为,所以,我向你介绍一
下的工具 Regex Tester。 Framework
,然后下载 Regex Tester。这是个绿色软件,下载完后打开压缩包,直
接运行 就可以了。
下面是 Regex Tester 运行时的截图:元字符
现在你已经知道几个很有用的元字符了,如\b,.,*,还有\
更多的元字符可用,比如\s 匹配任意的空白符,包括空格,制表符
(Tab),换行符,中文全角空格等。\w 匹配字母或数字或下划线或汉字
等。
下面来试试更多的例子:
\ba\w*\b 匹配以字母 a 开头的单词——先是某个单词开始处(\b),然
后是字母 a,然后是任意数