03正则表达式

在Python中字符串的匹配方法用于完全匹配

s = 'hi csdn'
print(s.find('csdn'))
#3

ret = s.replace('hi','hello')
print(ret)
#hello csdn

print(s.split(' '))
#['hi', 'csdn']

正则表达式用于进行字符串的模糊匹配,在Python中通过引入re模块实现

import re
ret = re.findall('c..n','hi csdn')#参数1:pattern,参数2:要进行匹配的字符串
print(ret)
#['csdn']

实现模糊匹配的元字符为:

元字符
.匹配除’\n’外的任意字符
^只在开始位置匹配
$只在结束位置匹配
*重复匹配,0到多次,常与.配合使用’.*’
+重复匹配,1到多次
?重复匹配,0或1次
{}重复匹配,自定义匹配次数,贪婪匹配,可以替代* ,+, ?
[]匹配字符集中的某个元素,会取消元字符的特殊功能(\ - ^ 例外)[^]取反
\\后面跟元字符取消特殊功能,\后面跟元字符实现特殊功能
\d匹配任何十进制数,类比[0-9]
\D匹配任何非数组字符,类比[^0-9]
\s匹配任何空白字符,类比[ \t\n\r\f\v]
\S匹配任何非空白字符,类比[^ \t\n\r\f\v]
\w匹配任何字母数字字符,类比[0-9a-zA-Z_]
\W匹配任何非字母数字字符,类比[^0-9a-zA-Z]
\b匹配一个特殊边界,即单词与特殊字符间的位置
import re
#.通配符
ret = re.findall('c..n','hi csdn')
print(ret)
#output:['csdn']

#^通配符
ret = re.findall('^csdn','hi csdn')
print(ret)
#output:[]

#$通配符
ret = re.findall('csdn$','hi csdn')
print(ret)
#output:['csdn']

# * 通配符
ret = re.findall('.*n','csdn hi')
print(ret)
#output:['csdn']

# + 通配符
ret = re.findall('c+.*n','hi csdn')
print(ret)
#output:['csdn']

# ?通配符
ret = re.findall('cs.?n','hi csdn,csn')
print(ret)
#output:['csdn', 'csn']

# {} 通配符
ret = re.findall('c{3}dn','hi cdn cccdn cccccdn')
print(ret)

ret = re.findall('c{1,3}dn','hi cdn ccdncccdn cccccdn')
print(ret)

# [] 通配符
ret = re.findall('[a-z]','hi csdn')
print(ret)
#output:['h', 'i', 'c', 's', 'd', 'n']

ret = re.findall('[c,*]','hi csdn')
print(ret)
#output:['c']

ret = re.findall('[^4,5]','hi 12345csdn')
print(ret)
#output:['h', 'i', ' ', '1', '2', '3', 'c', 's', 'd', 'n']
#对^后所有元素取非

# \ 通配符
ret = re.findall('\d{3}','hi csdn 12345678')
print(ret)
#output:['123', '456']
print(re.findall('\scsdn','hi csdn'))
#output:[' csdn']
print(re.findall('\wcsdn','hi csdn'))
#output:[]
print(re.findall('\w','hi csdn'))
#output:['h', 'i', 'c', 's', 'd', 'n']
print(re.findall(r'hi\b','hi csdn'))
#output:['hi']
print(re.findall(r'hi\b','hi$csdn'))
#output:['hi']



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值