au3 正则参考 -40-表达式选项
<!DOCTYPE html>
正则表达式选项
默认正则表达式模式文本字符的匹配是区分大小写的, 正则表达式模式中的空白将被解释为空白字符, 并且正则表达式中的捕获组通过隐式和显式命名.
可通过指定正则表达式选项修改正则表达式的这些默认行为.
PCRE 模式可以包含选项, 这些选项包含在 (? ) 序列中. 选项可以组合在一起: (?imx) . 选项后跟随一个连字符表示否定: (?im-sx) .
组集合外部的选项将影响剩余模式. 组集合内部的选项则仅影响本组. 字符组 [...] 内部的选项将失去其特殊含义, 仅代表它们本身.
选项构造并非捕获组. 即尽管子表达式捕获的字符串任意部分包含在匹配中, 但不会包含在捕获的组中.
下面为 AutoIt 帮助 StringRegExp() 文档页描述的选项列表, 点击选项符号查看详细描述:
选项 | 说明 |
---|---|
(?i) | 使用不区分大小写的匹配. |
(?m) | 使用多行模式, 其中 ^ 和 $ 匹配每行的开头和末尾(不是输入字符串的开头和末尾). |
(?s) | 使用单行模式, 其中的句号 . 匹配每个字符(而不是除了 \n 以外的每个字符). |
(?U) | 从该点开始量词变得懒惰(非贪婪). 这是 AutoIt 帮助文档的描述, 未找到相关资料. |
(?x) | 从模式中排除保留的空白并启用编号符号 (#) 模式后跟的注释. 模式之间的无意义空白使正则表达式有更好的可读性. |
(*UCP) | Unicode 类别属性(UCP)支持, 它允许大多数人类语言的细致处理. |
(?# 注释文本 ) | 用于说明正则表达式的作用, 意义. 如果出现在子表达式的后面, 则仅对该子表达式作出说明. |
如何指定正则表达式的选项
可以用下面 2 种方法之一指定正则表达式的选项:
1 . 通过语法 (?选项组合) 在正则表达式模式中应用内联选项.
以下示例中的正则表达式使用分组构造中的内联选项, 以启用不区分大小写的匹配, 和识别所有以字母 “d” 开头的单词时忽略模式中的空白.
字符串: Dogs are decidedly good pets.
表达式: (?ix) d \w+ \s
匹配结果(标志 3 ):
[0]Dogs
[1]decidedly
表达式分析:
模式 | 说明 |
---|---|
\b | 在单词边界处开始匹配. |
(?ix: d \w+) | 使用 (?i 不区分大小写的匹配, 并 x 忽略此模式中的白色空间, 匹配后跟一个或多个单词字符的 “d”. |
\s | 与空白字符匹配. |
2 . 通过语法(选项组行:子表达式)在正则表达式模式的特定分组构造中应用内联选项. 一个选项前面没有符号用于启用该选项 ; 一个选项前面的减号用于禁用该选项.
例如, 内联构造 (?ix-ms) 将启用不区分大小写, 和忽略表达式中的空格, 同时禁用多行和单行模式.
无论选项是启用还是禁用, ? 都是所需语言构造语法的固定部分. 减号不能紧跟在 ? 后面, 否则表示禁用所有选项 .
字符串: Dogs are decidedly good pets.
表达式 2 : \b(?x-i: d \w+)\s
匹配结果(标志 3): [0]decidedly
正则表达式的默认选项
从左到右在输入字符串中匹配正则表达式模式.
比较区分大小写.
^ 和 $ 元素匹配输入字符串的开头和结尾.
. 句点元素匹配除 \n(换行符) 之外的每个字符匹配.
正则表达式模式中的任意空白均解释为文本空白字符。
将模式与输入字符串进行比较时将使用当前区域性的约定.
正则表达式模式中的捕获组可以是隐式的, 也可以是显式的.
发表评论
木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!