前言:一个正则表达式是含有一些具有特殊意义的字符串,这些字符串称作正则表达式的元字符。
利用正则表达式可以从字符串中选出符合自己需要的字符串,并操作。
元字符 | 在正则表达式中的写法 | 意义 |
---|---|---|
. | . | 代表任何一个字符 |
\d | \\d | 代表0~9的任何一个数字 |
\D | \\D | 代表任何一个非数字字符 |
\s | \\s | 代表空格类字符,‘\t\','\n','\x0B','\f',;\r' |
\S | \\S | 代表非空格类字符 |
\w | \\w | 代表可用于标示符的字符(不包括美元符号) |
\W | \\W | 代表不能用于标示符的字符 |
\p{Lower} | \\p{Lower} | 小写字母[a~z] |
\p{Upper} | \\p{Upper} | 大写字母[A~Z] |
\p{ASCII} | \\p{ASCII} | ASCll字符 |
\p{Alpha} | \\p{Alpha} | 字母 |
\p{Digit} | \\p{digit} | 数字字符,即[0~9] |
\p{Alnum} | \\p{Alnum} | 字母或数字 |
\p{Punct} | \\p{Punct} | 标点符号:!,"#¥%……&*()~·<>?,.、 |
\p{Graph} | \\p{Graph} | 可视字符:\p{Alnum}\p{Punct} |
\p{Print} | \\p{Print} | 可打印字符:\p{Graph} |
\p{Blank} | \\p{Blank} | 空格或制表符[\t] |
\p{Cntrl} | \\p{Cntrl} | 控制字符:[\x00-\x1F\x7F] |
1. 在正则表达式中可以用方括号括起若干个字符来表示一个元字符,该元字符代表方括号的任何一个字符。
例如:regex=“[134]ABC",那么"1ABC","3ABc","4ABC”,d都是和正则表达式regex匹配的字符串。方括号元字符的意义如下所示:
- [abc]:代表abc中的任何一个;
- [^abc]:代表abc以外的任何字符;
- [a-zA-Z]:代表英文字母中的任何一个
- [a-d]:代表a~d中的任何一个;
2. 另外,中括号里允许嵌套中括号,进行并、交、差运算;
- [a-d[m-p]]:代表a~d,或m~p中的任何字符;
- [a-z&&&[def]]:代表def中的任何一个;
- [a-f&&[^bc]]:代表adef
- [.]代表:. 由于"."代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符,必须使用[.]
3. 正则表达式中可以使用限定修饰符。
例如对于修饰符?,如果X代表正则表达式中的一个元字符或普通字符,那么X?就表示X出现0次或1次,
例如regex=”hello[2345]?";那么,"hello2","hello3","hello4","hello5"都是正则表达式regex匹配的字符串,
带限定符号的模式 | 意义 |
---|---|
X? | X出现0次或1次 |
X* | x出现0次或多次 |
X+ | X出现一次或多次 |
x{n} | X恰好出现n次 |
X{n,} | X至少出现n次 |
X{n,m} | X出现n~m次 |