注意:正则表达式是一种精炼的字符串表达方式,表达式使用特殊意义的字符组合,匹配目标字符串中的特定字符组合。Autoit 的正则表达式通常是大小写敏感的。
正则表达式由下面所列的一个或多个简单的规则组成,如果某字符没有存在于下列表格中,那么该字符将只能匹配其自身。
次数修饰符(*, +, ?, {...}) 将尝试最大可能的匹配,使第一次匹配之后的字符也能得到匹配,除非前面是 ?,?... 使用最小匹配模式。
表达式允许嵌套,但请注意,除了没有匹配值的表达式,在返回的数组中,里面的表达式匹配的值在前,而外面的表达式匹配的值在后。
完整的说明可以在这里找到: here
Caution: 错误的正则表达式可能导致死循环,甚至崩溃.
匹配字符
| [ ... ] | 匹配[]内的任何字符。如 [aeiou] 匹配任何小写元音字母。可以使用破折号定义起始和结束字符匹配字符集,如 [a-Z] 匹配任何小写字母;又如 [][] 可以匹配 [or]。要注意的是,[]内的特殊字符需要使用转义符 \ 来匹配自身,比如:\\,\^,\-,\[,\] |
| [^ ... ] | 匹配 "..." 外的任何字符。如: [^0-9] 匹配任何非数字。同上,如果是需要匹配字符 "^",则需要使用转义符,如 \^ |
| [:class:] | :class: 代表字母类匹配符,其匹配内容请参考下文 |
| [^:class:] | 匹配 :class: 之外的字符,but only if the first character. |
| ( ... ) | 组内的元素在匹配时将被一起考虑,如 (ab)+ 将匹配 "ab" 或 "abab" 等,但不会是 "aba"。根据 Flag 的定义,组可以用数组存储匹配的文本,以便之后调用 |
| (?i) | 大小写不敏感标志,这不是组,而是告诉引擎从此处开始的匹配不区分大小写 |
| (?-i) | (默认)大小写敏感标志,同样不是组,而是告诉引擎从此处开始的匹配区分大小写 |
| (?i ... ) | 大小写不敏感组,组内元素不区分大小写,其它同普通组 |
| (?-i ... ) | 大小写敏感组,组内元素区分大小写,其它同普通组。主要用在 (i) 后面或者 (?i...) 内 |
| (?: ... ) | 非获取匹配组,匹配 ... 但只用于确定位置而不返回匹配结果,同样也不会返回 \i |
| (?i: ... ) | 同上,但不区分大小写 |
| (?-i: ... ) | 同上,但区分大小写 |
| (?m) | 同^ 和 $ ,仅匹配行内数据 |
| (?s) | 同 . ,匹配行内的任何数据("." 默认不匹配换行符) |
| (?x) | 忽略空格和 # 注释 |
| (?U) | 非贪婪模式 |
| . | 除换行符外的任何字符 |
| | | 或,用前或后侧表达式匹配 |
| \ | 转意符,让元字符匹配自身,或使字符代表特殊功能(见下文) |
| \\ | 匹配反斜线(\) |
| \a | 警告,即字符 BEL (chr(7)) |
| \A | 只匹配字符串开始处 |
| \b | 匹配词的边界(头或尾) |
| \B | 匹配词边界以外的区域 |
| \c | 根据下一字符匹配 ASCII 控制符,如 \cM 匹配 Ctrl-M |
| \d | 匹配数字(0-9) |
| \D | 匹配非数字 |
| \e | 匹配 Escape (chr(27)) |
| \E | 区域终点,需组合使用 |
| \f | 匹配换页符 (chr(12)) |
| \h | 横向空白字符如 Tab |
| \H | 非横向空白字符 |
| \l | 下一字符为小写 |
| \L | 匹配时 \L...\E 区域内字符转小写 |
| \n | 匹配换行符(@LF,chr(10)) |
| \Q | \Q...\E,忽略 ... 内所有元字符的功能 \Q(.)\E 将匹配连在一起的:(.) |
| \r | 匹配回车(@CR,chr(13)) |
| \s | 匹配任何空白字符:chr(9)-chr(13),即横向Tab,换行符,垂直Tab,换页符,回车,空格(chr(32)) |
| \S | 匹配任何非空白字符 |
| \t | 匹配制表符(chr(9)) |
| \u | 下一字符为大写 |
| \U | 匹配时 \U...\E 区域内字符转大写 |
| \v | 垂直空白字符 |
| \V | 非垂直空白字符 |
| \i 或 $i. | 前面第i个子表达式 () 匹配的捕获,i=1,2,3... 如:<t(.*?)>caption<\/\1> 可匹配 <title>caption</title> 但更多是用于 Replace |
| \w | 匹配a-z,A-Z,0-9,以及_(下划线) |
| \W | 匹配 \w 以外的字符 |
| \### | 匹配8进制值为 ### 的 ASCII字符,可匹配 ASCII字符及 \i ,如 ([:alpha:])\1 匹配 - (连字符) |
| \x## | 16进制值为 ## 的ASCII字符,如:\x311 匹配 11 |
| \z | 匹配字串尾部 |
| \Z | 同上,但可用于多行时匹配行尾 |


