故事开始的篇章^ ^
匹配不同类型的字符 :
字符类 | 匹配的字符 | 示例 |
\d | 从0~9的任一数字 | \d\d可以匹配72,但不匹配aa或7a |
\D | 非数字字符 | \D\D\D匹配abc,但不匹配123 |
\w | 任意单词字符,如A-Z、a-z、0-9, 和下划线 | \w\w\w\w匹配Ab_2,但不匹配@#$%或Ab_@ |
\W | 非单词字符 | \W可以匹配@,但不匹配a |
\s | 任一空白字符,包括制表符,换行符,回车符,换页符和垂直制表符 | 匹配所有传统的空字符,包括用HTML,XML和其他标准定义的字符 |
\S | 任一非空白字符 | 每一个非空字符:A%&g3等 |
. | 任一字符 | 换行符除外\n |
[...] | 括号中的任一字符 | [abc]匹配单个字符a、b或c,但不能匹配其他字符[a-z]匹配a~z的任一字符 |
[^..] | 不在括号中的任意字符 | [^abc]匹配a/b/c除外的任一字符 |
指定匹配位置:
定位符 | 描述 |
^ | 其后的模式必须在字符串的开始处,如果是一个多行字符串,应位于任一行的开始。对于多行文本(包含回车符的字符串),需要设定Multiline标志 |
$ | 前面的模式必须在字符串的末尾处,如果是一个多行字符串,应该在任一行的末尾 |
\A | 前面的模式必须在字符串的开始处,多行标记被忽略 |
\z | 前面的模式必须在字符串的末尾处,多行标记被忽略 |
\Z | 前面的模式必须在字符串的末尾处,或是位于换行符前 |
\b | 匹配一个单词的边界,实质上是单词字符和非单词字符间的点。单词字符是[a-zA-Z0-9_]中的任一字符。位于单词的开始。 |
\B | 匹配一个非单词边界的位置,不在一个单词的开始 |
指定重复字符:
重复字符 | 含义 | 举例 |
(花括号)n | 匹配前面的字符n次 | x(花括号)2 匹配xx,但不匹配x或xxx |
(花括号)n, | 匹配前面的字符n次或更多 | x(花括号)2, 匹配2个或更多的x,如xx,xxxx |
(花括号)n,m | 匹配卡门的字符至少n次,至多m次 | x(花括号)2,4 匹配xx,xxx和xxxx,不匹配x或xxxxx |
? | 匹配前面的字符0次或1次,可以省略 | x?匹配x或空 |
+ | 匹配前面的字符1次或更多次 | x+匹配x或xxx... |
* | 匹配前面的字符0次或多次 | x*可以是空,或x,xxx.... |
备注由于花括号不不能显示,只能用字描述,(花括号)n表示用一对花括号包含一个n
特殊字符的转义:
转意思序列 | 描述 |
\ | \ |
\. | . |
\* | * |
\+ | + |
\? | ? |
\| | | |
\( | ( |
\) | ) |
\{ | { |
\} | } |
\^ | ^ |
$ | $ |
\n | 换行 |
\r | 回车 |
\t | tab制表位 |
\v | 垂直制表位 |
\f | 换页 |
\nnn | 匹配一个3位八进制表示的字符 3表示大写C |
\xnn | 匹配2位十六进制的字符 \x43表示大写C |
\unnnn | 4位十六进制表示的Unicode字符 |
\cV | 匹配一个控制字符,如\cV表示Ctrl+V |
^[\w\W]+$ 这个是正则表达式的贪婪模式
^[\w\W]+?$ 这个是正则表达是的懒惰模式
^(\d[-]*)[\dxX]$ 用来匹配ISBN 1-861008-23-6 1-86100-823-6
^(\d[-]*?)[\dxX]$ 同上不过这个是懒惰模式