正则表达式详解
一、正则表达式——特殊字符
(以下所有特殊字符在使用其原意时,在字符前添加反斜杠"\")
$ 匹配字符串的结束位置
^ 用法 一、匹配字符串的开始位置
用法 二、在方括号表达式中使用,此时它表示不接受该字符集合
* 匹配前面的表达式或字符,零次或多次
+ 匹配前面的表达式或字符,一次或多次
. 匹配除换行符\n以外的任意单字符
? 匹配前面的子表达式或字符,零次或一次
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符
( ) 标记子表达式开始和结束位置
[ ] 标记一个中括号表达式
{ } 标记限定符表达式(下面详解)的开始和结束位置
二、 正则表达式——限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配,
有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}',可以匹配'moon',但是不能匹配'body'
{n,} n 是一个非负整数,至少匹配n 次。例如,'o{2,}' 不能匹配 "body" 中的 'o',但能匹配 "mooon" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "moooon" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
三、 正则表达式——元字符
[xyz] 字符集合。匹配所包含的任意一个字符。例如, '[xyz]' 可以匹配 "zoom" 中的 'z'。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如, '[^xyz]' 可以匹配 "zoom" 中的'o','o','m'。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 不匹配在 'a' 到 'z' 范围内的任意字符。
\d 匹配一个数字字符。等价于'[0-9]'。
\D 匹配一个非数字字符。等价于'[^0-9]'。
\w 匹配字母、数字、下划线。等价于'[a-zA-Z0-9_]'。
\W 匹配非字母、数字、下划线。等价于'[^a-zA-Z0-9_]'。