import re string = "1511\n1252598" #点(·)是匹配除了换行符以外所有的字符 m = re.match(".",string) #点(·)是匹配任意字符,没有指定个数就匹配单个 (1) print(m.group()) n = re.match(".+",string) #.+是匹配多个任意字符,除了换行符 (2) print(n.group())
运行结果如下:
1
1511
从上面代码运行结果可以看出,(1)处点(·)是匹配任意字符;(2)处我们匹配任意多个字符,但是由于字符串中间包含了空格,结果就只匹配了字符串中换行符前面的内容,后面的内容没有匹配。
重点:(1)点(·)匹配除了换行符之外任意字符;(2).+可以匹配多个任意除了换行符的字符。
(4)[...] 如[abc]匹配"a","b"或"c"
[object]匹配括号中的包含的字符。[A-Za-z0-9]表示匹配A-Z或a-z或0-9。
import re string = "1511\n125dadfadf2598" #[]匹配包含括号中的字符 m = re.findall("[5fd]",string) #匹配字符串中的5,f,d print(m)
运行结果如下:
['5', '5', 'd', 'd', 'f', 'd', 'f', '5']
上面代码,我们是要匹配字符串中的5,f,d并返回一个列表。
(5)[^...] [^abc]匹配除了abc之外的任意字符
import re string = "1511\n125dadfadf2598" #[^]匹配包含括号中的字符 m = re.findall("[^5fd]",string) #匹配字符串除5,f,d之外的字符 print(m)
运行如下:
['1', '1', '1', '\n', '1', '2', 'a', 'a', '2', '9', '8']
上面代码,我们匹配除了5,f,d之外的字符,[^]是匹配非中括号内字符之外的字符。
(6)* 匹配0个或多个的表达式
import re string = "1511\n125dadfadf2598" #*是匹配0个或多个的表达式 m = re.findall("\d*",string) #匹配0个或多个数字 print(m)
运行结果如下:
['1511', '', '125', '', '', '', '', '', '', '', '2598', '']
从上面运行结果可以看出(*)是匹配0个或多个字符的表达式,我们匹配的是0个或多个数字,可以看出,如果匹配不到返回的是空,并且最后位置哪里返回的是一个空("")。
(7)+ 匹配1个或多个的表达式
import re string = "1511\n125dadfadf2598" #(+)是匹配1个或多个的表达式 m = re.findall("\d+",string) #匹配1个或多个数字 print(m)
运行如下:
['1511', '125', '2598']
加(+)是匹配1个或多个表达式,上面\d+是匹配1个或多个数字表达式,至少匹配一个数字。
(8)? 匹配0个或1个的表达式,非贪婪方式
import re string = "1511\n125dadfadf2598" #(?)是匹配0个或1个的表达式 m = re.findall("\d?",string) #匹配0个或1个的表达式 print(m)
运行结果如下:
['1', '5', '1', '1', '', '1', '2', '5', '', '', '', '', '', '', '', '2', '5', '9', '8', '']
上面问号(?)是匹配0个或1个表达式,上面是匹配0个或1个的表达式,如果匹配不到则返回空("")
(9){n} 匹配n次,定义一个字符串匹配的次数
(10){n,m} 匹配n到m次表达式
(11)\w 匹配字母数字
\w是匹配字符串中的字母和数字,代码如下:
import re string = "1511\n125dadfadf2598" #(?)是匹配0个或1个的表达式 m = re.findall("\w",string) #匹配0个或1个的表达式 print(m)
运行如下:
['1', '5', '1', '1', '1', '2', '5', 'd', 'a', 'd', 'f', 'a', 'd', 'f', '2', '5', '9', '8']
从上面代码可以看出,\w是用来匹配字符串中的字母数字的。我们使用正则匹配字母和数字。
(12)\W \W大写的W是用来匹配非字母和数字的,与小写w正好相反
实例如下:
import re string = "1511\n125dadfadf2598" #\W用来匹配字符串中的非字母和数字 m = re.findall("\W",string) #\W用来匹配字符串中的非字母和数字 print(m)
运行如下:
['\n']
上面代码中,\W是用来匹配非字母和数字的,结果把换行符匹配出来了。
(13)\s 匹配任意空白字符,等价于[\n\t\f]
实例如下: