正则表达式学习总结
正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
正则表达式用途
1.测试字符串内的模式。
例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
2.替换文本。
可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
3.基于模式匹配从字符串中提取子字符串。
可以查找文档内或输入域内特定的文本。
正则表达式常用规则摘要
字符 |
||
x |
字符 x |
|
\\ |
反斜线字符 |
|
\0n |
带有八进制值 0 的字符 n (0 <= n <= 7) |
|
\0nn |
带有八进制值 0 的字符 nn (0 <= n <= 7) |
|
\0mnn |
带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7) |
|
\xhh |
带有十六进制值 0x 的字符 hh |
|
\uhhhh |
带有十六进制值 0x 的字符 hhhh |
|
\t |
制表符 ('\u0009') |
|
\n |
新行(换行)符 ('\u000A') |
|
\r |
回车符 ('\u000D') |
|
\f |
换页符 ('\u000C') |
|
\a |
报警 (bell) 符 ('\u0007') |
|
\e |
转义符 ('\u001B') |
|
\cx |
对应于 x 的控制符 |
|
字符类 |
||
[abc] |
a、b 或 c(简单类) |
ab:false; c:true
|
[^abc] |
任何字符,除了 a、b 或 c(否定) |
c:false; ef:false; e:true |
[a-zA-Z] |
a 到 z 或 A 到 Z,两头的字母包括在内(范围) |
|
[a-d[m-p]] |
a 到 d 或 m 到 p:[a-dm-p](并集) |
|
[a-z&&[def]] |
d、e 或 f(交集) |
|
[a-z&&[^bc]] |
a 到 z,除了 b 和 c:[ad-z](减去) |
|
[a-z&&[^m-p]] |
a 到 z,而非 m 到 p:[a-lq-z](减去) |
|
预定义字符类 |
||
. |
任何字符(与行结束符可能匹配也可能不匹配) |
|
\d |
数字:[0-9] |
|
\D |
非数字: [^0-9] |
|
\s |
空白字符:[ \t\n\x0B\f\r] |
|
\S |
非空白字符:[^\s] |
|
\w |
单词字符:[a-zA-Z_0-9] |
|
\W |
非单词字符:[^\w] |
|
数量词 |
||
X? |
X,一次或一次也没有 |
XX:false; X:true |
X* |
X,零次或多次 |
X:true XX:true; “”:true |
X+ |
X,一次或多次 |
“”:false; X:true |
X{n} |
X,恰好 n 次 |
|
X{n,} |
X,至少 n 次 |
|
X{n,m} |
X,至少 n 次,但是不超过 m 次;例X{2,3} |
X:false;XXX:true |