什么是正则表达式
正则表达式就是一个字符串,是一个用来对字符串进行处理的一个特殊的字符串,可以简化字符串的处理
正则表达式的字符
字符 | 含义 |
---|
[abc] | 表示一个字符,a或者b或者c |
[a-z] | 表示任意一个小写字母 |
[A-Z] | 表示任意一个大写字母 |
[0-9] | 表示任意一个数字 |
[1-5] | 表示1~5这5个数字中的某一个 |
[a-zA-Z0-9] | 表示所有的字母和数字中的某一个 |
[^bcd] | 除开abcd以外的所有字符中的一个 |
[a-zA-Z_0-9] | 所有的单词字符 |
任何一个字符都可以是正则表达式的字符
预定义的字符
字符 | 含义 |
---|
. | 一个任意字符 |
/d | 数字,等价于[0-9] |
/D | 非数字等价于[^0-9] |
\w | 所有的单词字符,等价于[a-zA-Z_0-9] |
\W | 非单词字符 |
\s | 空白字符 空格 \t \r \n |
\S | 非空白字符 |
字符的数量词
字符 | 含义 |
---|
{5,10} | 表示最少5次,最多10次 |
{5, } | 表示最少5次,无上限 |
{5} | 表示必须5次 |
? | 表示0次或一次 |
* | 表示0次或多次 |
+ | 表示1次或多次 |
懒惰性数量词和贪婪性数量词
{5,10}? 5个到10个,但尽可能少
?? 0个或者1个,但尽可能少
*? 0个或者多个,但尽可能少
+? 1个或者多个,但尽可能少
{5,10}+ 5个到10个,但尽可能多
?+ 0个或者1个,但尽可能多
*+ 0个或者多个,但尽可能多
++ 1个或者多个,但尽可能多
案例:
abcdbcd可以表示为:
a[a-z]+?d