VBA正则表达式入门与提高

发布时间 : 星期日 文章VBA正则表达式入门与提高更新完毕开始阅读

正则表达式入门与提高

目录

目录 ...................................................................................................................................................................................... 1 正则表达式入门与提高 ....................................................................................................................................................... 1 内容提要 .............................................................................................................................................................................. 2 第一篇 基础篇 ...................................................................................................................................................................... 4

一、正则表达式概论----理解正则表达式 .................................................................................................................. 4

(一)正则表达式方案处理文本的基本思路 ................................................................................................... 4 (二)正则表达式的基本组成单元—元字符(序列)......................................................................................... 5 (三)用正则处理文本的一个例子 ................................................................................................................... 7 二.正则与VBA的交互—正则表达式的实现 ............................................................................................................. 8

1.定义变量代码段 ................................................................................................................................................ 9 2.目标文本字符串赋值代码段 ............................................................................................................................ 9 3.创建正则对象代码段 ........................................................................................................................................ 9 4.设置对象的pattern属性 ................................................................................................................................ 10 5.设置对象的其它属性 ...................................................................................................................................... 10 6.应用对象的方法代码段 .................................................................................................................................. 12 三.正则元字符----字符表示法 ................................................................................................................................... 20

(一)对于一些常用的不可打印字符,规定了专用的元字符序列 ...................................................................... 20 (二)普通字符组:肯定字符组[a-z]及否定字符组[^a-z] ..................................................................................... 21 (三)字符组缩略表示法 ...................................................................................................................................... 21 (四)几乎能匹配任何字符的元字符:英文句点 ................................................................................................. 22 (五)控制字符表示法:\\cChar .............................................................................................................................. 22 (六)ASCII码表中字符的八进制转义表示法:\\num ........................................................................................... 22 (七)ASCII码表中字符的十六进制转义表示法: \\xnum ..................................................................................... 23 (八)Unicode码表中字符的十六进制转义表示法:\%unum ................................................................................ 23 (九)元字符字面字符表示法:转义符”” ............................................................................................................ 23 (十)引用前面括号捕获的文本--反向引用 .................................................................................................. 24 四.正则元字符----字符(串)连续出现次数表示法..................................................................................................... 25 五.正则元字符—-字符(串)位置表示法 .................................................................................................................... 27

(一)单词分界符\\b ............................................................................................................................................... 28 (二)非单词边界\\B .............................................................................................................................................. 29 (三)肯定顺序环视与否定顺序环视 .................................................................................................................. 29

第二篇 元字符(序列)进阶篇 ............................................................................................................................................. 34

一、元字符与字符集 ................................................................................................................................................. 34 二、^$的位置到底在哪里 ......................................................................................................................................... 35 三、字符组中元字符转义规则 ................................................................................................................................. 36 四、字符组与多选结构”|” ..................................................................................................................................... 36 五、否定顺序环视与否定字符组 ............................................................................................................................. 37 六、环视的多角度理解与应用 ................................................................................................................................. 38

(一)用作锁定特定位置的文本字符串 ......................................................................................................... 38 (二)用作对特定字符串是否存在的判断 ..................................................................................................... 39

第三篇 正则匹配的工作原理 ............................................................................................................................................ 41

一、匹配的基本术语 ................................................................................................................................................. 41

1. 匹配................................................................................................................................................................ 41

VBA平台的正则学习参考资料

2. 正则”引擎” ................................................................................................................................................ 41 3. 引擎”眼”中的目标文本—位置和字符 .................................................................................................... 41 4. 子表达式 ........................................................................................................................................................ 42 二、匹配总原则 ......................................................................................................................................................... 42 三、正则表达式匹配的基本过程 ............................................................................................................................. 42

1. 在正则制导下,引擎从目标文本的开始处,依次进行匹配尝试. ................................................................. 42 2. 引擎依次在目标文本的每一个位置上,尝试整个正则表达式中的所有子表达和组成元素,直到匹配失败,才移动到下一个位置. ................................................................................................................................... 43 3. 匹配优先量词总是匹配尽可多的字符 ........................................................................................................ 44 4 . 忽略优先量词总是匹配尽可能少的字符 ................................................................................................... 45 四、穷尽所有可能途径找到匹配---回溯 ................................................................................................................. 46

(1)多选结构的回溯 ............................................................................................................................................ 46 (2)量词”?”的回溯 .......................................................................................................................................... 47 (3)量词”*”的回溯 .......................................................................................................................................... 48 五. 回溯的总结 .......................................................................................................................................................... 48 六. 回溯与效率 .......................................................................................................................................................... 49 七.灾难回溯................................................................................................................................................................ 50 第四篇 技巧篇................................................................................................................................................................... 52

一. 匹配具有多种形态结构的字符串 ...................................................................................................................... 52

1. 匹配下列文本中的


标签,它可能呈现的形式例举如下: ..................................................................... 52 2. 匹配浮点数,它可能有下列几种呈现形式: .................................................................................................. 53 3. 匹配某范围内的数据 .................................................................................................................................... 53 讨论: ................................................................................................................................................................... 54 二、匹配特定位置上的字符串 ................................................................................................................................. 54 三、匹配其内部由相似结构字符串构成的字符串 ................................................................................................. 56 四、匹配一段文本,这段文本中不能包含特定字符串 ............................................................................................ 58 五、匹配一对特殊字符界定的之间的字符串,但其内部包含两端的界定字符 ................................................. 59

例1 目标文本 ..................................................................................................................................................... 59 例2 目标文本 ..................................................................................................................................................... 60 讨论: ................................................................................................................................................................... 62

结束语 ................................................................................................................................................................................ 63

正则表达式入门与提高

VBA则表达式入门与提高

有一位美国佬编写的<<精通正则表达式>>专业书籍是世人公认的正则权威著作.但它不太适合初学者,尤其是没有相关编程语言背景及书中所及的种种计算机技术知识的读者.其中很多晦涩难懂的内容在VBA中用不上或者对你来说根本无用的,而初学者的你却根本不知道怎样取舍.事实上,本人还没有发现一本针对VBA平台的正则专业书籍.网络可见到少量VBA正则教程,但内容多是”点到为止”.

鉴于此,有此贴文.在这里感谢本论坛liucqa老师的鼓励,在之前本人写过一篇正则对象操作的短文,liucqa老师留贴建议多写一点,但一致未能成文.此帖算是对liucqa老师的交代.

1

VBA平台的正则学习参考资料

内容提要

顺利迈越初期学习正则障碍的最好方法是:首先鸟览正则的全貌,在头脑中建立正则地图的概貌,然后”按图索骥”描绘充实每个细节.

“基础篇”的第一章希望为你构建一个正则体系的\地图“轮廓.第二章详细解读了正则在VBA中的实现(即正则对象的操作).第三至第六章分类介绍VBA中可使用的全部元字符(序列).它相当于VBS程序员手册中的正则内容范围.但充实了更多在实践中会遇到的细节

“元字符进阶篇”,讨论了元字符的应用环境以及对若干个常用元字符(序列)的深入辨析和应用探索. “原理篇”:正则表达式工作原理是最重要同时也是最难以掌握的知识.研究这个问题有时的确很枯燥,然而弄懂正则表达式的工作原理,才是真正理解正则的关键.正则工作原理可以让你根据任务编制出正确高效的正则表达式,也可以帮助你理解别人编写的正则表达式,另外也帮你分析”为什么是这个匹配结果?”的真正原因,从而更精准地调较正则表达式.

“技巧篇”:不要指望背诵单词和掌握语法就可以写出漂亮的文章.掌握正则的方法也是需要大量阅读与实践的,本篇提供了一些现实世界的实例,供你参考和探讨.望它能给你一些编制正则表达式的灵感.

目录

第一篇 基础篇

一、 正则表达式概论—理解正则表达式

二、 正则表达式与VBA的交互—正则表达式的实现 三、 正则元字符—字符的表示法 四、 正则元字符—数量的表示法 五、 正则元字符—位置的表示法 六、 正则元字符—分组及控制表示法 第二篇 进阶篇 一、 元字符与字符集 二、 ^$的位置到底是哪里 三、 字符组内部元字符转义规则 四、 字符组与多选结构“|” 五、 否定环视与否定字符组 六、 顺序环视的多角度理解与应用 第三篇 原理篇

2

联系合同范文客服:xxxxx#qq.com(#替换为@)