Python3之正则表达式

#——author:"Jay Zhu"
#date: 2018/6/27

#正则表达式用来匹配字符串。 普通字符,元字符
#元字符有11个
# .代替任何元素。只能代替一个元素。不能代替换行符  通配符
# ^

s = 'hello wold'

print(s.find('ll')) #拿到索引位置。 #2
ret = s.replace('ll','xx')
print(ret) #hexxo word
ret = s.split(' ')
print(ret) #['hello', 'word']

#String 提供的方法是完全匹配。

import  re

s = 'hello wold'
ret = re.findall('w\w{2}l','hello world') #w..l
print(ret)


# .代替任何元素。只能代替一个元素。不能代替换行符  通配符
ret = re.findall('w..l','hello world')
print(ret)

# # ^ 只对字符串的开始进行匹配。尖叫符
print(re.findall('^h...o','hjasoflhello'))
#
# #$ 从结尾开始。
print(re.findall('z.f$','hjasoflzlfhellozlf'))
#
# #*:重复匹配[0,+00]
#
print(re.findall('zlf*','hjasoflzsdfasdfasdfasdflfhellozlfbaaaaaaaazlf'))
#
# # +:重复匹配[1,+oo]
# print(re.findall('ba+','hjasoflzsdfasdfasdfasdflfhellozlfbzlf'))

# # ? [0,1] 只能去0或者1次
print(re.findall('a?b','aaaaaaaaabb'))

#{}
print(re.findall('a{1,2}b','abaaaabaabaabbaaaaaaab'))#贪婪匹配:安装最多的区,有多的不取少的。
# #[]:字符集 取消元字符的特殊功能 (\ ^ -)例外
#
print(re.findall('a[c,d]x','adxacxasdfsafsadfacdsadfsadfacx'))
print(re.findall('[a-z]','adx'))
print(re.findall('[a,*]','adxzzz*')) #取消元字符的特殊功能
print(re.findall('[1-9a-zA-Z]','adxzzz*'))
print(re.findall('[1-9,a-z,A-Z]','adxzzz*'))
print(re.findall('[^x]','adxzzz*'))  #尖叫号放在字符集里面,是取反
#
# # \ :后边跟元字符,去除特出含义。后边跟普通字符,实现特出功能
#
# # \d   【0-9】10进制数字
# # \D    [^0-9]非数字
# # \s    [\t\n\r\f\v]
# # \S    [^\t\n\r\f\v]
# # \w    [a-zA-Z0-9_]
# # \W    [^a-zA-Z0-9_]
# # \b     单词和空格间的位置。
# print(re.findall(r'I\b','hello,I am LIST'))

###search匹配出第一个满足条件的结果
print(re.search('sb','sasdfasdfasdfsbsb,sb'))#<_sre.SRE_Match object; span=(13, 15), match='sb'>
print(re.search('sb','sasdfasdfasdfsbsb,sb').group()) #sb

#
print(re.findall(r'D\\c', 'adhfD\c'))
print(re.search(r'\bblow','blow').group())

#()|  分组

print(re.search('(as)+','asassasssassasasas').group())
print(re.search('(as)|3','asassasssassasasas3').group())
print(re.search('(as)|3','3asassasssassasasas3').group())

#?P<...> 给一个内容定义一个名字。
ret = re.search('(?P<id>\d{3})/(?P<name>\w{3})','weew34ttt123/ooo')

print(ret.group())
print(ret.group('id'))
print(ret.group('name'))

#正则表达式的方法:
# 1. findall() 所有结果都返回一个列表里。
# 2. search()  返回匹配到的第一个对象,对象可以调用group()方法,返回结果,不能为NONE
# 3. match()   只在字符串开始匹配
# 4. split()

print(re.match('asd','asdfhasd'))#<_sre.SRE_Match object; span=(0, 3), match='asd'>
print(re.match('asd','asdfhasd').group()) #asd

print(re.split('[j,s]','djksal'))

print(re.sub('j.*u','zhulingfeng','dasfhksahjaychou'))

obj = re.compile('\.com')


print(obj.findall('sdafsadf.com'))



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值