au3 正则参考 -36-量词限定符
<!DOCTYPE html>
匹配 x 到 y 次: {x,y}
{x,y} 限定符匹配前面的元素至少 x 次, 但不超过 y 次,其中 x 和 有为整数. {x,y} 是贪婪限定符, 对应的惰性限定符是 {n,m}?.
下面示例正则表达式 (00\s){2,4} 尝试匹配两个相连的数字 0 和一个紧随的空格, 且匹配 2 到 4 个实例.
注意输入字符串可匹配 (00\s) 的有 5 处, 但开头的子字符串 0x00 FF 部分不符合 {2,4} 的要求, 与该正则表达式模式不匹配:
字符串: 0x00 FF 00 00 18 17 FF 00 00 00 21 00 00 00 00 00
表达式: (00\s){2,4}
匹配结果(标志 4):
[0]=> [0]00 00 从位置 8 开始匹配
[1]=> [0]00 00 00 从位置 23 开始匹配
[2]=> [0]00 00 00 00 从位置 35 开始匹配
表达式分析:
模式 | 说明 |
---|---|
(00\s) | 匹配两个相连的数字 0 和一个紧随的空格. |
{2,4} | 匹配 2 到 4 个实例. |
匹配 x 到 y 次(惰性匹配): {x,y}?
{x,y}? 限定匹配前面元素最少 x 次, 最多 y 次, 其中 x 和 y 为正整数, 但是次数尽可能少. 它是贪婪限定符 {x,y} 对应的惰性部分.
下面示例的正则表达式限制匹配标点符号之前包含 1 到 10 个单词的句子. 字符串中黑色字体句子包含 18 个单词, 不符合 {1,10}? 的要求, 不在匹配范围内.
字符串:
Hi. I am writing a short note.
Its purpose is to test a regular expression that attempts to find sentences with ten or fewer words.
Most sentences in this note are short.
表达式: \bA-Z{1,10}?[.!?]
匹配结果(标志 4):
[0]=> [0]Hi.
[1]=> [0]I am writing a short note.
[2]=> [0]Most sentences in this note are short.
表达式分析:
模式 | 说明 |
---|---|
\b | 在单词边界处开始. |
[A-Z] | 匹配一个 A 到 Z 的大写字符. |
(\w?\s) | 匹配零个或多个单词字符, 后跟一个或多个空白字符. 这是第一个捕获组. |
{1,10}? | 匹配上一个模式最少 1 次, 最多 10 次, 但次数尽可能少. 在标点符号前 , 最少一个单词 , 最多 10 的单词 . |
[.!?] | 匹配标点字符 . ! 或 ? 中的任何一个. |
发表评论
木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!