正则表达式(regular)知识(整理)(4)

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]

实例如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjsgxs.html