正则

# 正则是匹配字符串的
import re
# s='holle, world'
# ret = s.replace('ll','xx')# hoxxe, world 替换
# print(ret)
# print(s.find('ll')) #查找 显示查找到2个
# print(s.split(' '))#['holle,', 'world' 分割
# print(s.split('w'))#['holle, ', 'orld'] 分割
#string提供的方法是完全匹配
#引入正则:模糊匹配
#pattern==规则 string==字符串
# ret = re.findall('w\w{2}l','holle, world')#['worl']
# print(ret)
#. 是通配符
# ret = re.findall('w..l','holle, world')# .只能代指1个字符 .就是不能匹配换行符\n
# print(ret)


#^符
# ret = re.findall('^h...o','hellodfafda') #['hello'] ^值匹配开始的位置
# print(ret)

#$符
# ret = re.findall('a..x$','hellodfafdx') #['afdx'] $只在最后匹配
# print(ret)

#*重复匹配 (0.+oo)
# ret = re.findall('a*..x','heallaodfaaaaafdx') #['aaaaafdx'] 满足条件是a都匹配
# print(ret)

#+重复匹配 (1.+oo)
# ret = re.findall('a+b','heallaodfaaaaafdx') # [] #最少有1个 否则匹配不上 +只对前面的字符起作用
# print(ret)

#?[0,1] 就是有或没有
# ret = re.findall('a?b','heallabodfaaaaabfdx') #['ab', 'ab'] 只能匹配一个a
# print(ret)

#{} 任意的匹配
# ret = re.findall('a{1,4}b','aaaaab') #['aaaab'] #必须满足{}里的参数 也可以是个范围{0-9a-zA-Z} {1,3} 默认最大的参数匹配
# print(ret)

#*等于(0,+oo) +等于(1,+oo) ?等于(0,1) {1,} 不加就等于+oo 推荐用元字符



#[]字符集: 取消元字符的特殊功能 [\ ^ -]除外
# ret = re.findall('a[bc]','ac') #('a[bc]','ab') ['ab'] ('a[bc]','ac') ['ac']
# print(ret)

# - 是 0-9 a-z A-Z 范围


# ^ 取反
# ret = re.findall('[^bc]','abcc') #['a'] 除bc都能取出
# print(ret)

# | 或的意思


#\
#反斜杠后面跟元字符去除特殊功能
#反斜杠后面跟普通字符实现特殊功能
# \d 匹配任何十进制数;它相当于类 [0-9]。
# \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 匹配一个特殊字符边界,比如空格 ,&,#等

# ret = re.findall('\d{11}','abcc6549649646498464198') #['65496496464']
# print(ret)
#
# ret = re.findall('\w','fak asd') #['f', 'a', 'k', 'a', 's', 'd']
# print(ret)





# print(re.search('sb','adfasbdfafassb')) <_sre.SRE_Match object; span=(4, 6), match='sb'> 对象
# print(re.search('sb', 'adfasbdfafassb').group()) #sb 匹配出满足条件的第一个结果 search 后面跟.guroup
# set = re.search('a.','adfa').group() # 匹配ad
# print(set)
# set = re.search('a\.','a.dfa').group() #a. \. 点就是普通字符
# print(set)

# set = re.findall('\\\\','asb\de') #['\\'] PY解释器\\ 正则\\
# print(set) # 解释器要用 要用\\----->去表示\ 正则需要 要用\\----->去表示\
# set = re.findall(r'\\','asb\de') #['\\'] PY解释器\\
# print(set)

# ret = re.findall(r'I\b','hoole,I am a LIST') #r=原生字符 ['I']
# print(ret)


#()
# print(re.search('(as)+','sdjkfasas').group()) #asas +贪婪匹配
# print(re.search('(as)|3','as3').group()) # as |是或的意思
# ret = re.match('asd','asdadafaasd') asd
# print(ret.group())
#正则的放大
# re.findall() 所有的结果都返回到列表里
# re.search() 返回的是一个对象(object) 对象可以调用group方法 返回结果
# re.match() 只在字符串开始匹配
# ret = re.split('[j,s]','sdjksal') #***** ['', 'd', 'k', 'al'] 先分J 在分S
# print(ret)
# ret = re.sub('s..x','alex','dafsdvxadfadfa') #dafalexadfadfa
# print(ret)
# obj = re.compile('\.com')
# ret = obj.findall('dfadfa.comfafadf')
# print(ret) #['.com']
posted @ 2019-12-25 22:13  feichengwurao  阅读(186)  评论(0编辑  收藏  举报