正则表达式在线测试网站:RegExr: 学习、构建 和 测试 正则表达式 Test RegEx
详细的我参考的是:编程胶囊-打造学习编程的最好系统
匹配总结
对于匹配单个字符的情况:
1. 字符组[]
匹配[]中的任意一个字符,比如[Pp]ython可以匹配Python或python
[0-9]可以匹配所有的数字,[a-z]匹配所有的小写英文字母
字符组里面的内容可以拼接起来用,彼此之间不影响。[0-9a-z]匹配所有数字和小写英文字母。
2. 转译符
[0-9\-]可以匹配所有数字以及匹配-
3. 取反
在字符数组开头使用 ^
字符可实现取反操作,意味着会匹配任何指定字符之外的所有字符
n[^e]
的意思就是n
后面的字母不能为 e
4. 匹配取反
对于\d
的取反为\D,后者意思是匹配除了数字外的所有字符
5. ^n
指的是匹配以n开始,$n
指的是匹配以n结束
6. "."可匹配所有字符,除了换行符
7. ?匹配可选字符,即m?n可匹配mn或者n
对于匹配多个字符的情况
8. 匹配多个字符
在一个字符组后加上{N}
就可以表示在这个字符组出现N
次
\d{4}匹配四个数字
9. 匹配数量区间内的字符
\d{3,4}
既可以匹配3
个数字也可以匹配4
个数字,不过当有4
个数字的时候,优先匹配的是4
个数字
10.匹配重复次数没有边界的字符组
\d{1,}
表示匹配一个或无数个数字
+
等价于{1,}
,*
等价于{0,}