首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 学习之正则表达式“下”

阅读文本大概需要 4 分钟

re模块深入了解

字符串切割

# 切割字符串

s ="To be a better man !"

print(s.split(" "))

print(re.split(r" +", s))# 以一个或多个空格切割

finditer() 函数

# re.finditer() 函数,与 findall() 类似,扫描整个字符串,返回的是一个迭代器,节省内存

s ="To be a better man! To be a better man! To be a better man!"

x = re.findall(r"(better)", s)

print(x)

i = re.finditer(r"(better)", s)# 迭代器

while1:

try:

j = next(i)

print(j)

exceptStopIterationase:

break

字符串的替换和修改

re.sub(pattern, repl, string, count, flags=0) 与 re.subn(…)

repl 用来替换的字符串,string 目标字符串,count 最多替换次数

作用:在目标字符串中以正则表达式的规则匹配字符串,再把他们替换成指定的字符串,可以指定替换的次数,如果不指定,替换所有的匹配字符串

区别:前者返回一个被替换的字符串,后者返回一个元组,元组的第一个元素为被替换的字符串,第二个元素为被替换的次数

s ="To be a better better better man!"

print(re.sub(r"(better)","great", s))

print(type(re.sub(r"(better)","great", s)))

print(re.subn(r"(better)","great", s,2))

print(type(re.subn(r"(better)","great", s)))

分组 group

编译 compile(pattern, flags=0)

编译:当我们使用正则表达式时,re 模块会做两件事:

1.编译正则表达式,如果正则表达式本身不合法,会报错

2.用编译后的正则表达式去匹配对象,如果编译成正则对象,简化了匹配过程

pat=r"^1(([3578]\d)|(47))\d$"

print(re.search(pat,"13588888888"))

# 编译成正则对象

phone = re.compile(pat)

print(phone.search("13588888888"))

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180710G1YTNI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券