正则表达式

判断目标字符串是否符合特定的要求

 \d    表示任意的一位数字  digit \d\d  表示任意的两位数字
 \w    表示任意的一个字母或者数字   word
 \s    表示任意的空格    space
 .     表示任意的内容一般不单独使用123 abc!@   a.在a后面匹配任意的内容
 *     表示*前面的内容出现0次或者多次
 +     表示+前面内容出现一次或者多次
 ?     表示前面的内容出现出现0次或者1次  a.?
 ^     表示以什么开头的
 $     表示以什么结尾
 {n}   表示内容重复n次  \d\d\d  可以写成 \d{3}
 {n,m} 表示最少重复n次,最多重复m次
 {,m}  最多重复m次

贪婪模式与非贪婪模式

正则表达式默认是贪婪模式  尽量找到所有的符合要求的内容

 .*    称之为贪婪模式

content = 'a11qwewbabab'
pattern = re.compile('(a.*b)')
result = pattern.match(content)
print(result.group(0))

.*?   称之为非贪婪模式

pattern = re.compile('(a.*?b)')
result = pattern.match(content)
print(result)
print(result.group(0))

raw string  没有经过雕刻或者修改的字符串
会将字符串里面的转义字符失效

title = '123hello world'
# pattern = re.compile(r'\d\d\d')
pattern = re.compile(r'\d{3}')
result = pattern.match(title)
print(result.group(0))

匹配全国固话

pattern = re.compile(r'(\d{4})-(\d{8})')
result = pattern.match('0371-68686688')
print(result.group(0))

可以任意匹配几个

pattern = re.compile('((haha|heihei)balabala)')
result = pattern.match('hahabalabala')
print(result)
result = pattern.match('heiheibalabala')
print(result)

search模块

pattern = re.compile(r'you')
result = pattern.search('I love you ,I miss you, I hate you')
print(result)
print(result.group(0))

search找到字符串中第一个符合正则的内容,只找第一个
findall找到所有符合的内容

content = '12345君不见黄河之水天上来,55555'
pattern = re.compile(r'\d{5}')
result = pattern.findall(content)
print(result)

sub模块

content = '悟空对战牛魔王'
pattern = re.compile(r'悟\s*空')
result = pattern.sub('铁扇公主',content)
print(result)
content = '悟空对战牛魔王,八戒观战'
key_word = [
    (r'悟空','铁扇公主'),
    (r'牛魔王','沙僧'),
    (r'八戒','红孩儿'),
]
for pattern,replace in key_word:
    pattern = re.compile(pattern)
    content = pattern.sub(replace,content)
    print(content)

手机号正则表达式

pattern = re.compile(r'^((13[0-9])|(14[67])|(15[0-3])|(15[5-9])|(18[0|5-9]))\d{8}$')
result = pattern.match('14777898706')
print(result)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值