美文网首页
re-正则表达式

re-正则表达式

作者: huashen_9126 | 来源:发表于2020-04-14 23:16 被阅读0次

搜索匹配

re.match #只匹配字符串的开始,不常用
re.match(pattern, string, flags=0)
re.search #匹配整个字符串,常用
re.search(pattern, string, flags=0)

import re
 
line = "Cats are smarter than dogs";
 
matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
   print("match --> matchObj.group() : ", matchObj.group())
else:
   print("No match!!")
 
matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
   print("search --> searchObj.group() : ", matchObj.group())
else:
   print("No match!!")

输出:
No match!!
search --> searchObj.group() : dogs

'(?P...)' 分组匹配

import re
s = '1102231990xxxxxxxx'
res = re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_year>\d{4})',s)
print(res.groupdict())

输出:
{'province': '110', 'city': '223', 'born_year': '1990'}

检索替换

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

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import re
 
phone = "2004-959-559 # 这是一个国外电话号码"
 
# 删除字符串中的 Python注释 
num = re.sub(r'#.*$', "", phone)
print "电话号码是: ", num
 
# 删除非数字(-)的字符串 
num = re.sub(r'\D', "", phone)
print "电话号码是 : ", num

输出:
电话号码是: 2004-959-559
电话号码是 : 2004959559

repl是一个函数

import re
 
# 将匹配的数字乘以 2
def double(matched):
    value = int(matched.group('value'))
    return str(value * 2)
 
s = 'A23G4HFD567'
print(re.sub('(?P<value>\d+)', double, s))

输出:
A46G8HFD1134


继续学习

re.compilere.findallre.finditerre.split
参考:菜鸟教程

相关文章

  • re-正则表达式

    简介 这个模块提供了与 Perl 语言类似的正则表达式匹配操作。 模式和被搜索的字符串既可以是 Unicode 字...

  • re-正则表达式

    搜索匹配re.match #只匹配字符串的开始,不常用re.match(pattern, string, flag...

  • 如何记忆reject

    Day 331 morning 2021 reject:拒绝 re-, 向后,往回, -ject, 扔,字面意思即...

  • 【每日一词Day25】 replace

    replace /rɪ'ples/ vt. 取代,代替;替换,更换;归还,偿还;把…放回原处❤ [re-往回+-...

  • #微习惯打卡#002

    英语学习: 关于时间或次序前缀: pro-(之前) procure 获得,取得 re- (之后) respo...

  • 【每日一词Day13】respect

    respect n. 尊敬,尊重;方面;敬意 vt. 尊敬,尊重;遵守❤ 【re-再次+-spect-看-...

  • 杂酱学英语之repress

    repress vt. 抑制;镇压(叛乱等);约束 vi. 抑制;镇压❤ 【re-往回+-press-压--...

  • 2019-01-24外刊

    rediscover/ˌriːdɪˈskʌvər/ v. 重新找到;重新获得 e.g. 前缀:re- 表重复 be...

  • ced(cess,ceed),走

    pre - 向前,ante - 也代表向前re-往后,回retro-往后,回inter-中间,来回ex-pro-o...

  • 【每日一词Day22]recept

    recept /'riːsept/ n. 对相似物体之连续感觉而形成感觉❤ 【re-往回+-cept-拿--拿...

网友评论

      本文标题:re-正则表达式

      本文链接:https://www.haomeiwen.com/subject/cjlwmhtx.html