正则表达式(上)

正则表达式(re模块)

python中re模块支持正则表达式,本文主要介绍re模块。
python的re模块官方文件

什么是正则表达式

正则表达式就是用一个文本模式来匹配一组符合条件的字符串。

match方法和group方法

match方法用于指定文本模式和匹配字符串。match方法前两个参数必须指定,第一个参数为文本模式,第二个参数表示待匹配的字符串。
match方法匹配返回值为SRE_MATCH对象,得用group方法来返回字符串匹配不成功,返回None。
代码示例

import re
m=re.match('hello','hello world')
if m is not None:
	print(m.group())
#运行结果为hello

search方法

search方法用于在一个字符串中搜索特定的文本字符串。它的参数与match方法相同。
代码示例

import re
m=re.search('abc','vabca')
if m is not none:
	print(m.group()) #运行结果:abc
print(m)  #运行结果:<re.Match object; span=(1, 4), match='abc'>
# span=(1.4)代表的是模式字符串在被查找字符串中的索引

特殊符号

在模式字符串中不仅只有字符,还有一些特殊的符号,他们每个代表着不同的涵义。
下面的列表介绍一些常用的特殊符号

符号用途
|选择符号(or)
.代表任意字符
[]字符集
*重复字符串(0-n次)
+重复字符串(1-n次)
\w表示任意一个字母或者数字
\d表示任意一个数字
{N}重复N次
^字符串的开始
$字符串的结束
\b单词的边界
可选符号,是否存在

接下来将一一介绍这些特殊符号的具体用法

|符号

|符号是选择匹配符号,只要与其中一个相匹配,就可以匹配成功。
代码示例

import re
s='bike|car|truck'
m=re.match('bike',s)
if m is not None:
	print(m.group())   #匹配成功,运行结果:bike

.符号

.符号可以替代任意一个单个字符
代码示例

import re
s='.ike'
m=re.match(s,'bike')
if m is not None:
	print(m.group())    #匹配成功,运行结果:bike

[]符号

[]符号代表一个字符集,可以作为字符集中任意一个字符。
代码示例

import re
s=[a-z][A-Z][0-9]  #[a-z]代表26个小写英文字母中的任意一个,后面的同理。
m=re.match(s,'sC1')
if m is not None:
	print(m.group()) #  匹配成功,运行结果:sC1

*符号和+符号

和+符号功能类似,所以我们比较进行学习。两个符号都可以用来表示重复的字符串,比如aaa或者00等,其中**符号表示字符出现0-n次,+符号表示字符出现1-n次。**
代码示例

import re
s='[a-z]+[0-9]*'
m=re.match(s,'adsdc')
print(m.group())  #匹配成功,运行结果为:adsdc
m=re.search(s,'ad1234')
print(m.group())   #匹配成功,运行结果为:ad1234

\w符号和\d符号

\w代表的是任意一个字母或者任意一个数字,\d代表的是任意一个数字。
代码示例

import re
s='\wad\d'
m=re.match(s,'3ad3')
print(m.group())   #匹配成功,运行结果为:3ab3

{N}符号

{N}表示某个字符重复N次,只会修饰前一个字符。
代码示例

import re
s='abc{3}'  #修饰c单个字符,而不是abc整个字符串
m=re.match(s,'abccca')
print(m.group())   #匹配成功,运行结果为:abccc

^符号和$符号

^符号代表着字符串的开始,$符号代表字符串的结束。
代码示例

import re
s='the$'
m=re.match(s,'sdgbfthe')     #匹配成功
m=re.match(s,'thea')         #匹配失败
s='^the'
m=re.match(s,'thea')         #匹配成功
m=re.match(s,'sdgbfthe')     #匹配失败

\b符号

\b符号用于表示单词的边缘(边缘的含义就是空格或者一些符号),在哪边表示哪边就是边缘,另一个边缘不做要求。使用时一般要用r在字符串的前面,使之不进行转义。
代码示例

import re
m=re.match(r'\bthis\b','what is this?')   #匹配成功
m=re.match(r'this\b','thisisapig')    #匹配不成功

?符号

?表示所修饰的字符可存在可不存在。
代码示例

import re
m=re.match('\w?wow(\d)+','wow123')    #匹配成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rookie驿站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值