正则表达式

贪婪模式:<.*> 匹配 '<a> b <c>' ,匹配尽可能多的字符。*,+,?
非贪婪模式:<.*?> 匹配 '<a>',匹配尽可能少的字符。*?,+?,??
{m,n}匹配m到n个重复字符
{m,n}?只匹配m个重复字符

[amk]匹配'a'、'm'、or 'k'.
[a-z]匹配任何一个小写字母
[0-5][0-9]匹配00-59间的任意两位数
[0-9a-fA-F]匹配任意十六进制数
'-'在[a\-z]、[-a]、[a-]里只匹配自身'-'
[(+*)]只匹配'('、'+'、'*' or ')'

import re
p = re.compile('a.*b') # 贪婪模式
p.findall('aabbbabab')
>>>['aabbbabab']

p = re.compile('a.*?b') # 非贪婪模式
p.findall('aabbbabab')
>>>['aab', 'ab', 'ab']
# ip地址匹配
import re
pattern = re.compile(r'((?:[0-9]\.|[1-9][0-9]\.|1[0-9]{2}\.|2[0-4][0-9]\.|25[0-5]\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9]))')
content = '100.100.100.100 10.0.3.8 123.4.6.8'
m = pattern.findall(content)
print(m)
>>>['100.100.100.100', '10.0.3.8', '123.4.6.8']
phone = '13434-48945-232 # 一串有间隔的数字码'
num = re.sub('#.*','',phone) # 删除注释
print('num is : ',num)
>>>num is :  13434-48945-232

num1 = re.sub('\D','',num) # 删除减号
print('num1 is : ',num1)
>>>num1 is :  1343448945232
# 以字母下划线开头,以数字结尾的正则表达式
import re
p = re.compile('^[a-zA-Z_].*\d$')
p.findall('_Ac12300')
>>>['_Ac12300']

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值