正则表达式:匹配符号

正则表达式:匹配符号
译注:back-reference 网络解释为逆向引用、后向引用, 用于重复搜索前面某个分组匹配的文本.
Non-capturing group 网络解释为非捕获组, 就是输入字符串和捕获组匹配的那一部分将不被保存在内存中
 
[ ... ] 匹配任何字符. 例如: [aeiou] 匹配任何小写元音字母.
连续设置可以在开始和结束之间使用破折号. 例如: [a-z] 匹配任何小写字符.
设置包含破折号 (-) , 使用它作为第一个或最后一个字符.
设置包含方括号, 使用它作为第一个字符的设置. 例如: [][] 将匹配任意 [ 或 ].
注意:特殊字符在设置内不保留他们的特有含义, 有例外: \\, \^, \-, \[ 与 \] ,它们在一个设置内匹配转义符.   
[^ ... ] 匹配任何不在指定範圍內的任意字符. 例如: [^0-9] 不匹配任何数字. 要匹配 "^" 字符本身,请使用 (\^).   
[:class:] 在字符的给定类中匹配字符. 有效类是:
alpha (任何字母字符),     alnum (任何字母数字字符),      lower (任何小写字母),
upper (任何大写字母),     digit (任何十进制数字 0-9),     xdigit (任何十六进制数字, 0-9, A-F, a-f),
space (任何空白字符),     blank (只有一个空格或制表符),     print (任何可打印字符),
graph (除空格外的任何可打印字符),     cntrl (任何控制字符 [ascii 127 或 <32])
punct (任何标点字符).     因此 [0-9] 相当于 [[:digit:]].   
[^:class:] 在类中除第一个字符外,不匹配任何字符   
( ... ) 组. 组中的元素可按序重复处理. 例如: (ab)+ 将匹配 "ab" 或 "abab", 但不匹配 "aba".
组能保存匹配的文本,以便由函数返回的数组后向引用, 但需取决于设定的标志值.   
(?i) 不区分大小写. 该标志对组无效. 它指定正则表达式匹配时不涉及大小写.   
(?-i) (默认) 区分大小写. 该标志对分组无效. 它指定正则表达式匹配时区分大小写.   
(?i ... ) 区分大小写的组. 仅工作于正常组, 在分组内执行匹配时区分大小写.   
(?-i ... ) 区分大小写的组. 仅工作于正常组, 在分组内执行匹配时区分大小写. 主要用于 (-i) 标志之后, 或一个区分大小写的分组内.   
(?: ... ) 非捕获组. 仅工作于正常组, 但是不记录数组的匹配字符,被匹配的文本也不会用作后向引用.   
(?i: ... ) 不区分大小写的非捕获组. 仅工作于捕获组, 在非捕获组内执行不区分大小写的匹配.   
(?-i: ... ) 区分大小写的非捕获组. 仅工作于非捕获组,在非捕获组内执行区分大小写的匹配.   
(?m) ^ 与 $ 匹配数据内的换行符.   
(?s) . 匹配任意字符,包括换行. (默认 "." 不匹配换行)   
(?x) 忽略空白区域和 # 注释.   
(?U) 反转贪婪的量词.   
. 匹配任何的单字符 (除换行以外)..   
| 或句点" . " , 可以匹配|前的字符也可以匹配|之后的字符.   
\ 退出一个特殊字符 (让它匹配实际字符) 或者引用一个特殊字符类型 (见下文)..   
\\ 匹配一个真实的反斜线 (\).   
\a 报警字符(打印它的效果是电脑嘀一声),即字符 BEL (chr(7)).   
\A 只匹配字符串的开头.   
\b 匹配一个单词边界,也就是单词和空格之间的位置. 例如:"er\b" 可以匹配 "never" 中的 "er",但不能匹配 "verb" 中的 "er"   
\B 匹配非单词边界. 例如: “er\B” 能匹配 “verb” 中的 “er”,但不能匹配 “never” 中的 “er”.   
\c 匹配一个控制字符, 基于下一个字符. 例如:, \cM 匹配 ctrl-M.   
\d 匹配数字字符, 等价于[0-9].   
\D 匹配非数字字符, 等价于[^0-9].   
\e 匹配一个退出符 (chr(27)).   
\E 结束大小写修改.   
\f 匹配一个换页符 (chr(12)).   
\h 匹配一个换行符.   
\H 任何不是水平的空白字符.   
\n 匹配换行符 (@LF, chr(10)).   
\Q 引用 (停用) metacharacters 模式到 \E 时为止. 译注: metacharacters = 元字符,指那些可以代表特殊含义的字符   
\r 匹配一个回车符 (@CR, chr(13)).   
\s 匹配任何的空白字符: Chr(9) 到 Chr(13).包括:水平制表符,换行,垂直列表符,换页,回车以及标准空格 ( Chr(32) ).   
\S 匹配任何的非空白的字符.   
\t 匹配一个制表符 (chr(9)).   
\v 匹配一个垂直制表符.   
\V 匹配不是垂直制表符的任何字符.   
\w 匹配包括下划线的任何单词字符,等价于“[A-Za-z0-9_]”.   
\W 匹配任何非单词字符, 等价于“[^A-Za-z0-9_]”。.   
\### 匹配ASCII字符, 其代码是特定的或是后向引用的. 最多只能有 3 个八进制数字.
找到的匹配用于后向引用. 匹配先前的组. 例如: ([:alpha:])\1 将匹配一个双字母.   
\x## 匹配指定的ascii字符,用字符的的十六进制表示. 只能是 2 个数字. 比如:空格可以使用 "\x20" 表示.   
\z 只匹配字符串结束.   
\Z 只匹配字符串结束,或者换行之前. 

重复字符
 
{x} 重复前面的字符, 精确 x 次数.   
{x,} 重复前面的字符, 至少 x 次数.   
{0,x} 重复前面的字符, 最多 x 次数.   
{x, y} 重复前面的字符, 在 x 与 y 之间的次数, x、y包括在内.   
* 重复前面的字符, 0 或更多次数. 等价于 {0,}   
+ 重复前面的字符, 1 或更多次数. 等价于 {1,}   
? 可能会或可能不会出现的前一字符. 等价于 {0, 1}   
? (在一个重复字符之后) 查找最少的匹配而非最多的 

字符类别
 
[:alnum:] 字母和数字   
[:alpha:] 字母   
[:ascii:] 字符代码 0 - 127   
[:blank:] 空格或制表符   
[:cntrl:] 控制字符   
[:digit:] 十进制数字 (相同于 \d)   
[:graph:] 可打印字符, 排除空格   
[:lower:] 小写字母   
[:print:] 可打印字符,包括空格   
[:punct:] 可打印字符, 排除文字和数字   
[:space:] 空白空间 (不完全和 \s 相同, 还包括 VT: chr(11) )   
[:upper:] 大写字母   
[:word:] "字" 字符 (相同于 \w)   
[:xdigit:] 十六进制数 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值