前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python正则表达式实战(二)

Python正则表达式实战(二)

作者头像
TalkPython
发布2021-05-28 17:24:59
4060
发布2021-05-28 17:24:59
举报
文章被收录于专栏:TalkPythonTalkPython
1、检查指定字符串是否为’be’开头
代码语言:javascript
复制
>>> line1 = 'be nice'
>>> line2 = '"best!"'
>>> line3 = 'better?'
>>> line4 = 'oh no\nbear spotted'

>>> pat = re.compile(r'^be')       

>>> bool(pat.search(line1))
True
>>> bool(pat.search(line2))
False
>>> bool(pat.search(line3))
True
>>> bool(pat.search(line4))
False
2、替换字符串中的单词
代码语言:javascript
复制
>>> words = 'bred red spread credible'

>>> re.sub(r'\bred','brown',words)     
'bred brown spread credible'
3、过滤出列表中,包含42的元素
代码语言:javascript
复制
>>> words = ['hi42bye', 'nice1423', 'bad42', 'cool_42a', 'fake4b']

>>> [w for w in words if re.search(r'42',w)]   
['hi42bye', 'nice1423', 'bad42', 'cool_42a']
4、过滤列表中,以den开头或者ly结尾的元素
代码语言:javascript
复制
>>> items = ['lovely', '1\ndentist', '2 lonely', 'eden', 'fly\n', 'dent']

>>> [e for e in items if re.search(r'^den',e) or re.search(r'ly\Z',e)]        
['lovely', '2 lonely', 'dent']
5、将一段内容中,mall替换为1234,条件为mall是开头的行
代码语言:javascript
复制
>>> para = '''\
... ball fall wall tall
... mall call ball pall
... wall mall ball fall
... mallet wallet malls'''

>>> print(re.sub(r'^mall\b','1234',para,flags=re.M))    
ball fall wall tall
1234 call ball pall
wall mall ball fall
mallet wallet malls
6、忽略大小写,过滤出列表中”12\nthree“的元素
代码语言:javascript
复制
>>> items = ['12\nthree\n', '12\nThree', '12\nthree\n4', '12\nthree']
>>> [w for w in items if re.search(r'^12\nthree\Z',w,flags=re.I)]
['12\nThree', '12\nthree']
7、给定一个列表,以hand开头的元素替换hand为X。
代码语言:javascript
复制
>>> items = ['handed', 'hand', 'handy', 'unhanded', 'handle', 'hand-2']

>>> [re.sub(r'^hand','X',w) for w in items]
['Xed', 'X', 'Xy', 'unhanded', 'Xle', 'X-2']
8、过滤出列表中所有hand开头的元素,然后将过滤后元素中的e替换为X。
代码语言:javascript
复制
>>> items = ['handed', 'hand', 'handy', 'unhanded', 'handle', 'hand-2']

>>> [re.sub(r'e','X',w) for w in items if re.search(r'^hand',w)]
['handXd', 'hand', 'handy', 'handlX', 'hand-2']
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TalkPython 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、检查指定字符串是否为’be’开头
  • 2、替换字符串中的单词
  • 3、过滤出列表中,包含42的元素
  • 4、过滤列表中,以den开头或者ly结尾的元素
  • 5、将一段内容中,mall替换为1234,条件为mall是开头的行
  • 6、忽略大小写,过滤出列表中”12\nthree“的元素
  • 7、给定一个列表,以hand开头的元素替换hand为X。
  • 8、过滤出列表中所有hand开头的元素,然后将过滤后元素中的e替换为X。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档