au3 正则参考 -33-问号限定符
<!DOCTYPE html>
匹配零次或一次: ?
? 限定符匹配前面的元素零次或一次. 等效于 {0,1}. ? 是贪婪限定符, 对应的惰性限定符是 ??.
例如正则表达式 \ban?\b 尝试匹配以字母 a 开头且后跟字母 n 的零个或一个实例的完整单词. 换言之, 它尝试匹配单词 a 和 an.
下面示例演示此正则表达式:
字符串: An amiable animal with a large snount and an animated nose.
表达式: (?i)\ban?\b
匹配结果(标志 3):
[0]An
[1]a
[2]an
表达式分析:
模式 | 说明 |
---|---|
(?i) | 开始不区分大小写的匹配 . 否则匹配不完整 . |
\b | 在单词边界处开始. |
an? | 匹配后跟零或一个 n 字符的 a . |
\b | 在单词边界处结束. |
匹配零次或一次(惰性匹配): ??
?? 限定符可以匹配前导元素零次或一次, 但次数尽可能少. 它是与贪婪限定符 ? 对应的惰性部分.
例如正则表达式 ^\s(System.)??Console.Write(Line)??(?? 尝试匹配 "Console.Write" 或者 "Console.WriteLine" 字符串. 字符串还可以在“Console”前包含“System." ”, 它后面可以跟着左括号. 该字符串必须位于一行的开头, 不过它的前面可以有空白. 下面的示例演示了此正则表达式:
字符串:
System.Console.WriteLine(\"Hello!\")
Console.Write(\"Hello!\")
Console.WriteLine(\"Hello!\")
Console.ReadLine()
Console.WriteLine
表达式: (?m)^\s(System.)??Console.Write(Line)??(??
匹配结果(标志 4):
[0]=> [0]System.Console.Write
[1]=> [0]Console.Write
[2]=> [0]Console.Write
[3]=> [0]Console.Write
表达式分析:
模式 | 说明 |
---|---|
(?m) | 激活多行选项 . 使 ^ 能自动连续匹配下一行的开头 , 否则正则表达式只能匹配第一行的文本 . |
^ | 匹配输入字符串的开始部分. |
\s* | 匹配零个或多个空白字符. |
(System.)?? | 匹配字符串 System. 的零个或一个匹配项. |
Console.Write | 匹配字符串 Console.Write . |
(Line)?? | 匹配字符串 Line 零次或一次. |
(?? | 转义左括号匹配本身. 匹配左括号的零个或一个匹配项 |
发表评论
木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!