AutoIt 正则表达式参考与学习[序]
AutoIt 正则表达式参考
by:131738 收集整理 - Build 2016.03.20
字符串组成
对于字符串"a5", 是由两个字符 "a" 和 "5" 以及三个位置组成的(如下图所示), 这一点对于正则表达式的匹配原理理解很重要:
占有字符和零宽度
正则表达式匹配过程中, 如果子表达式匹配到的是字符内容, 而非位置, 并被保存到最终的匹配结果中, 则认为这个子表达式是占有字符的;
如果子表达式匹配的仅仅是位置, 或者匹配的内容并不保存到最终的匹配结果中, 则认为这个子表达式是零宽度的.
占有字符还是零宽度, 是针对匹配的内容是否保存到最终的匹配结果中而言的.
占有字符是互斥的, 零宽度是非互斥的. 也就是一个字符同一时间只能由一个子表达式匹配, 而一个位置却可以同时由多个零宽度的子表达式匹配.
正则表达式构成
正则表达式由两种字符构成. 一种是在正则表达式中具体特殊意义的"元字符", 另一种是普通的"文本字符".
元字符可以是一个字符, 如 ^ , 也可以是一个字符序列, 如 \w .
关于 AutoIt 正则表达式的一般说明
正则表达式表示法以紧凑方式搜索指定主题字符串,确定可以由 StringRegExp() 提取的匹配部分,
或可以由 StringRegExpReplace() 替换的匹配部分.
正则表达式引擎尝试匹配模式(一种编程格式)与对象的字符串, 并且按左到右的顺序执行搜索.
如果发生不匹配, 引擎尝试回溯(依次返回到以前的状态), 期待将匹配模式的其余部分.
AutoIt 使用 PCRE 引擎(Perl 兼容的正则表达式),是最全面的开源引擎. 这个引擎包括 Unicode 类别属性(UCP)支持, 它允许大多数人类语言的细致处理.
然而, 为了维持与以前版本的兼容性, 并保持在其最佳的匹配速度, 默认不启用 UCP 支持.
您可以通过在表达式前添加字符串(*UCP)启用它. 启用时,UCP 设置将更改正则表达式的元素数目的扩展.
注意: 错误的正则表达式可以产生一个无限循环而占用 CPU, 甚至可以导致崩溃.
关于本文档的说明
网上关于正则表达式的教程, 参考......等等的文章不少, 相关示例也不少, 但都是基于某种编程语言书写! 详细分析正则表达式意义的却十分鲜见!
现实中也没有专为 AutoIt 语言的! AutoIt 帮助文档的这部分描述对于完全门外汉简直犹如天书!
这个参考以正则表达式示例分析为主, 没有诸如"什么是正则表达式"之类的东西! 资料收集于以下网页:
微软-正则表达式语言 - 快速参考(中文) 此文档主要收集于这个网页
下面两个网页为辅助参考收集
收集的正则表达式示例都是基于 C# 编程语言编写的, 本文档使用 afan 的 Au3.REHelper_正则助手[160128更新1.5.1] 调试修改为 AutoIt 语言格式! 在此致谢 afan !!!
本参考文档的描述文本兼顾 AutoIt 帮助的函数 StringRegExp() 文档页描述内容!
注意 : 此文档中参杂有我的理解, 这部分内容均已斜体字表示, 基于本人正则知识匮乏, 看客不可轻信 !!!
此文档中"匹配结果(标志 x)" 的 x 表示测试工具 Au3.REHelper_正则助手 的测试标志选项 0 至 4 !
发表评论
木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!