Python re模块前的正则表达式常用语法小总结
一、正则表达式:
(1).正则表达式是干什么的
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
(2). 正则表达式的的语法
1.字符
1. \d 相当于[0-9] 匹配所有数字
正则表达式:\d
要匹配的字符:132sjdk464sajdksj21
2. \w 相当于[A-Za-z_] 匹配所有字符
正则表达式:\w
要匹配的字符:132%sjd k4 64sajdksj21_ @
3. \s 匹配空格、换行符(\n)、制表符(\t)
4. \b 边界符
正则表达式: ing\b
要匹配的字符: thing taking tingouing (匹配有边界的,没有边界的是不会匹配)
5. \B 非边界
6. \D 是\d 取反 匹配除数字以外的所有字符
正则表达式:\D
要匹配的字符:1545@%6siudaijs sa@
7. \W 是\w 取反
正则表达式:\W
要匹配的字符:1545@%6siudaijs sa@
8. \S 是\s 取反
正则表达式:\S
要匹配的字符:1545@%6siudaijs sa@
2. 量词
* 取*前面一个字符的零次或多次
+ 取+前面一个字符的一次或多次
?取?前面一个字符的零次或一次 (可以取消正则表达式的贪婪)
. 取所有的字符包括空格、制表、换行
^ 表示从头开始取
正则表达式:^\d*
要匹配的字符:123465sdjhaijeo 454sds21d2s1d5s4
$ 表示一个字符的结尾
正则表达式:\d*$
要匹配的字符:123465sdjhaijeo 454sds21d2s1d5s445
| 表示 或可以取两边谁满足的字符串 (如果 | 两边的表达式,后面的包含前面的内容但是还加了其他内容时,要放在前面,不然就匹配不到后面的表达式)
正则表达式:\d+\.\d+|\d* (匹配小数或者整数) 如果 | 两边的表达式调换则不能匹配到小数 \d*|\d+\.\d+
要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445 / 123465sdjha2.3ijeo 454sds21d2s1d5s445
{n} 匹配前面字符n次
正则表达式:\d{3}
要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445
{n,} 匹配前面字符至少n次
正则表达式:\d{3,}
要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445
{n, m} 匹配前面字符n次到m次 (n次到m次之间的都可以)
正则表达式:\d{2,4}
要匹配的字符:123465sdjha2.3ijeo 454sds21d2s1d5s445
()可以把多个字符分在一组
正则表达式:\w+@[0-9A-Za-z]+\.([0-9A-Za-z]*\.)*com 里面还有很多东西没有处理(这里只是想说一下()的作用)
要匹配的字符:1235456@qq.com | 1235456@qq.12356.com 都可以匹配
[] 表示一个字符组
其中 基本量词里面的都有特殊的含义,想要表达他们就要用到转义符 \ 把他们转回原来的比如 \$ 就是匹配 $
一般 * . + ? 都具有贪婪性可以加?取消他们的贪婪性
令附:正则表达式查询的网址:http://tool.chinaz.com/regex