正则表达式分组 |
注意事项 |
||
捕获组与非捕获组 (以左括号为顺序为分组编号) |
(exp) |
匹配exp,并捕获文本到自动命名的组里 |
组名从1开始,依次递增(0为整个正则表达式) |
(?<name>exp) |
匹配exp,并捕获文本到名称为name的组里,也可以写成(?‘name‘exp) |
反向引用方法为:\name、\1 |
|
(?:exp) |
匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
||
贪婪子表达式 |
(?>exp) |
非捕获组,但是对exp执行贪婪匹配 |
|
零宽度正预测先行断言 |
(?=exp) |
断言自身出现的位置的后面能匹配表达式exp |
组中必须是最大长度确定的字符串 即不能出现\s*、\d+等 |
零宽度正回顾后发断言 |
(?<=exp) |
断言自身出现的位置的前面能匹配表达式exp |
|
零宽度负预测先行断言 |
(?!exp) |
断言此位置的后面不能匹配表达式exp |
|
零宽度负回顾后发断言 |
(?<!exp) |
断言此位置的前面不能匹配表达式exp |
|
注释 |
(?#comment) |
正则表达式模式 |
备注 |
||
UNIX_LINES |
(?d) |
在多行模式中匹配^和$时,只有 \n 被设识别成行终止符 |
行终止符1 |
CASE_INSENSITIVE |
(?i) |
匹配字符时忽略大小写 |
默认情况下,只考虑US ASCII字符 |
COMMENTS |
(?x) |
注释模式 1、正则表达式模式中的非转义的空白将被忽略 2、数字符号 (#) 被解释为注释的开头,而不是原义字符。正则表达式模式中的所有文本,从 # 字符到行的结尾都解释为注释。 |
按原义解释字符内的空格,而不考虑使用COMMENTS选项。例如,正则表达式模式 [ .,;:] 匹配任意单个空格字符、句点、逗号、分号或冒号。 |
MULTILINE |
(?m) |
^和$仅匹配行的开头和结尾,而不是整个输入的开头和结尾 |
|
LITERAL |
无 |
字符模式(输入中的元字符和转义字符将失效) |
|
DOTALL (Single Line) |
(?s) |
使用此标志时, ‘.’符号匹配所有字符,包括行终止符 |
|
UNICODE_CASE |
(?u) |
和CASE_INSENSITIVE组合时,用Unicode字母大小写来匹配 |
|
CANON_EQ |
无 |
考虑Unicode字符规范的等价性 |
时间: 2024-10-11 00:59:40