我的第十二篇博客---初识python正则表达式

初识python正则表达式

python中字符串前面加上r表示原生字符串
与大多数编程语言相同,正则表达式

————————————————————————————————————

反斜杠:

在python正则表达式中
第一个\代表转意不是反斜杠
如果要匹配出一个\
就需要两个\\
第二个代表\本身
例如:
import re
f=re.match('.','\\')
if f:
print(f.group())
else:
print('匹配失败')

如果要匹配两个\就需要四个\\\\
打一个\或者三个\是错误的 会报错 因为是转义符 后面要跟内容
有一个\后面就要跟转意的符号 单字符匹配的是\加后面的一个字符

————————————————————————————————————————

匹配方法:

首先要引入模块
import re
re.match()能够匹配出xxx字符串
例如:
f=re.match('你要查找的字符串里的内容给出条件','字符串')
输出时 print(f.group()) 才能输出你找的内容
字符 功能
. 匹配任意一个字符(除了\n)
[] 匹配[]中列举的字符 如([0-9]表示0-9的数字,[0-9a-z_]表示可匹配范围是数字0-9,字母a-z还有下划线
\d 匹配数字 即0-9
\D 匹配非数字
\s 匹配空白 即空白,tab键
\S 匹配非空白
\w 匹配单词字符,即a-z,A-Z,0-9,_
\W 匹配非字符 如@,#,。
上面这些一个只能匹配一个字符,匹配多个就要重复写
例如要匹配出123 就要写\d\d\d
f=re.match('\d\d\d','1234')
print(f.group())

————————————————————————————————

匹配分组:

字符 功能
| 匹配左右任意一个表达式,如果左边的表达式是错误的可以匹配右边的,两边都正确用左边的
(a|b) 将括号中的字符作为一个分组,找满足其中的任意一个即可匹配成功

例如:
import re
f=re.match('(1|2)','12')
print(f.group())
结果为1
左边的为先

————————————————————————————————

匹配开头结尾:

字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾
例如:
匹配出开头是html,结尾是.com的字符串
a=['html:[email protected]','html:[email protected]','[email protected]']
import re
for x in a:
f=re.match('^html.[\w]*@.com$',x)
if f:
print(f.group())
else:
print('错误')
结果是:
html:[email protected]
错误
错误

当你要查找字符串以什么结尾时,前面都要有相应的匹配方式,不然会查找失败

————————————————————————————————————————

重复方法:

字符 功能
* 匹配签一个字符出现0次或无限次,即可有可无
+ 匹配前一个字符出现1次或无限次,至少有一次
? 匹配签一个字符出现1次或者0次,要么有一次,要么有0次
{m} 匹配签一个字符出现m次
{m,n} 匹配签一个字符出现从m次到n次
import re
f=re.match('\d{3}','1234')
print(f.group()) 结果为123

猜你喜欢

转载自www.cnblogs.com/sll-csdn/p/10809714.html
今日推荐