Python正则表达式学习例子

(1)匹配1-100之间的数

import re 

s = '100'   # 1-100内的任意数字
ret = re.match(r'(100|[1-9]\d{0,1})$',s)
print(ret.group())

 

(2)匹配座机号码

010-67132692,其构造规则为[3位数字][-][8位数字]

或者

0431-4978981,其构造规则为[4位数字][-][7位数字]

import re 

s = "010-67132692"
ret = re.search(r'^\d{3,4}-\d{7,8}$' , s)
print(ret.group())

 

(3)对输入的qq号进行匹配(qq匹配规则:长度为5-10位,纯数字组成,且不能以0开头。) 

import re 

s = "1101111123"
ret = re.match(r'[1-9]\d{4,9}$' , s)
if ret != None:
    print(ret.group())
else :
    print('匹配失败!')

 

(4)查找字符串中有多少个af

import re 
s = "asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd"

ret = re.findall(r'(af)' , s)
print(len(ret))

 

(5)规则是按照空格出现一次或者多次切割

import re 

s = "zhangsan   lisi  wangwu"
res = re.compile(r'\s+')
ret = res.split(s)
print(ret)

效果图:

 

(6)用正则\\切割

import re 

s = "c:\\abc\\a.txt"
res = re.compile(r'\\')
ret = res.split(s)
print(ret)

效果图:

 

(7)将连续5个以上数字替换成#

import re 

s = "wer8934605juo123wa89320571f"
res = re.compile(r'\d{5,}')
ret = res.sub('#' , s)
print(ret)

效果图:

 

(8)取出字符串中的所有字母 

import re 

s = "abDEe23dJfd343dPOddfe4CdD5ccv!23rr"
res = re.compile(r'[a-zA-Z]+')
ret = res.findall(s)
print(ret)

效果图:

 

(9)找出以字母e结尾的单词,忽略大小写 

import re 

s = 'THREE people at HERE do some THING'
res = re.compile(r'\w+e\b' , re.I)   #\b为边界
ret = res.findall(s)
print(ret)

效果图:

 

 (10)将多个重复字母替换成&

import re 

s = "cudddbhuuujdddcaa"
res = re.compile(r'([a-zA-Z])\1+')
ret = res.sub('&' , s)
print(ret)

效果图:

 

(11)将多个重复字母替换成一个字母(比如ddd替换成d)

import re 

s = "cudddbhuuujddd"
res = re.compile(r'([a-zA-Z])\1+')
ret = res.sub(r'\1',s)
print(ret)

效果图:

 

(11)获取长度为3个字母的单词

import re 

s = "min tian jiu yao fang jia le ,da jia"
ret = re.findall(r'\b\w{3}\b' , s)
print(ret)

效果图:

 

(12)将字符串变成 '我要学编程'

s = "我我...我我...我要..要要...要要...学学学...学学...编编编..编程..程.程...程...程"
res = re.sub(r'\W+','', s)
ret = re.sub(r'(.)\1+',r'\1',res)     
print(ret)

效果图:

 

(13)去掉div和b标签

结果:正则<span>表达式</span>练习

import re 

s = "<div class='a'>正则<span>表达式</span><b style='color:red'>练习</b></div>"
ret = re.sub(r'(</?div.*?>|</?b.*?>)','',s) 
print(ret)

效果图:

 

(14)找出每行中只有3个数字的字符串 

s = '''121fefe
3qsqse2
ded6d32
aaaaa1a
1234adc
'''
ret = re.findall(r'^\D*\d\D*\d\D*\d\D*$' , s ,re.M)
print(ret)

效果图:

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值