PYTHON中的正则表达式(1)。

## 正则表达式概述 ##
正则表达式,又称正规表达式,正规表示法。(Regular Expression) 代码中通常简称为regex,正则表达式用耽搁字符串来描述,匹配一系列匹配的某个句法规则的字符串,在文本编辑器中通常用来检索和,替换匹配文本。

re模块

早Python中需要通过正则表达式对字符串进行匹配的时候,我们会用到re模块。名字RE

1.RE模块的使用过程

#导入re模块
import re
result=re.match('正则表达式',要匹配的字符串)
#如果要上一步匹配的数据,调用group方法来取得。
result.group()

re.match是用来进行正则匹配和检查的方法,若字符串能够匹配正则表达式。则match方法返回匹配对象(match object),否则返回none(注意不是空字符)
匹配对象有一个Match object又一个group方法,用来返回字符串的匹配部分。
2.re模块示例(匹配以itcast开头的语句)

#导入re模块
import re
result=re.match('itcast','itcast.cn')
#如果要上一步匹配的数据,调用group方法来取得。
print(result.group())

3说明

re.match()能够匹配出以xxx开头的字符串。

这里写图片描述

#导入re模块
import re
result=re.match('itcast','itcast.cn')
#如果要上一步匹配的数据,调用group方法来取得。
print(result.group())



m='c:\\a\\b\\c'
ret1=re.match(r'c:\\a',m).group()
ret2=re.match('c:\\\\a',m).group()
print(ret1)
print(ret2)

说明python字符串前面加上r表示原生字符串。
与大多数的编程语言相同,正则表达式使用’\’作为转义字符,这就可能造成反斜杠的困扰。假如你要匹配字符串中的’\’,那么python重就需要4个反斜杠。
python中的原生字符串就很好的解决这个问题,有了原生字符串,再也不用担心漏写反斜杠。写出来的表达式也更加的直观。

表示数量

这里写图片描述

#导入re模块
import re
ret=re.match('[A-Z][a-z]*','Mn')
print(ret.group())


ret1=re.match('[a-zA-Z]+[\w_]*','name')
print(ret1.group())
ret2=re.match('[a-zA-Z]+[\w_]*','_name')
 print(ret2.group())
# ret3=re.match('[a-zA-Z]+[\W_]','2name')
# print(ret3.group())

例如我们来匹配一个手机号码。
ret3=re.match(‘1[35678]\d{9}’,’13618646855’)

表示边界

这里写图片描述

匹配分组

这里写图片描述

代码示例;匹配出0到100之间的数字。

import re
ret1=re.match(r'[1-9]?\d?$|100$','87')
print(ret1.group())
#导入re模块
import re
# patterm=re.compile(r'\d+')
# #match是从字符串开始找。
# m=patterm.match('aaa1243bbb345')
# m1=patterm.match('aaa123bbb456',3,5)
# print(m1.group())
#pattern.match():从起始位置开始往后查找,返回一个符合规则的
#pattern.search():从任何位置开始查找
#pattern.findall()所有全部匹配,返回列表。
#pattern.finditer():所有全部匹配返回一个迭代器
#pattern.split()分割列表,返回列表
#patterrn.sub()替换。






#忽略大小写。
pattern=re.compile(r'([a-z]+) ([a-z]+)',re.I)
m2=pattern.match('Hello world hello Python')
print(m2.group())
print(m2.group(1))
pattern2=re.compile(r'\d+')
ret2=pattern2.search(r'aaa123bbb456',2,6)

ret3=pattern2.search('hello 123456 789')
print(ret2.group())

print(ret3.group())
#findall他返回是一个列表,下面执行结果[123,456,789]
ret4=pattern2.findall('hello 123 456 789')
print(ret4)
pattern3=re.compile(r'\d?')
ret5=pattern3.findall('hello 123 456 789')
print(ret5)
pattern4=re.compile(r'[\s\d\\\;]+')
m=pattern4.split(r'a bb\aa;mm  a')
print(m)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值