码迷,mamicode.com
首页 > 编程语言 > 详细

python之re模块

时间:2018-03-27 23:54:56      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:com   AC   字符集   十进制   特殊   import   log   去除   定义   

#正则表达式是用来干嘛的?
#匹配 字符串
# s="hello world"
# print(s.find("llo"))
# print(s.replace("ll","mm"))
# print(s.split("w"))

#string提供的方法是完全匹配
#引入正则表达式,进行模糊匹配
import re
# ret=re.findall("w\w{2}l","hello world")
# print(ret)
# red=re.findall("xiong","hfjihdjkjldnjxiongkhddfnhvjkndfkln")
# print(red)#其实这种不适用re,反倒用字符串的方法也可以,杀鸡用牛刀也不好


# 11元字符 "." "^" "$" "*" "?" "{}" "+" "[]" "|" "()" "\ "

#"."通配符 可以代指除了换行符之外的字符,不过"."只能代指一个东西,一个点代指一个字符
# ret=re.findall("w..l","hello world")
# print(ret)

# "^" 尖角符加了尖角符,就只以最开始的位置匹配
# ret=re.findall(‘^h...o‘,"hellodhufduh")
# print(ret)

#"$",代表从结尾开始匹配
# ret=re.findall("h...o$","dfjihhello")
# print(ret)

#"*"重复匹配[0,正无穷)
# ret=re.findall("x.*li","hjkdhjhjdhjjhxionglifhg")#*代表重复前面字符多次
# print(ret)

#"+"重复p匹配[1,无穷大)
# ret=re.findall("x.+li","hjkdhjhjdhjjhxionglifhg")#+代表重复前面字符多次,不过后面代替的字符个数必须大于一
# print(ret)
# ret=re.findall("x.+li","hjkdhjhjdhjjhxlifhg")#+代表重复前面字符多次,不过后面代替的字符个数必须大于一
# print(ret)#[]

#"?"重复匹配[0,1]
# ret=re.findall("a?b","abaadfdbaabaaa")#?代表重复前面字符多次,不过后面代替的字符个数在零到一之间
# print(ret)#[‘ab‘, ‘b‘, ‘ab‘]

#"{}"重复匹配,次数自定义
# ret=re.findall("a{3}b","abaadfdbasfadfjaaabaaa")#{}代表重复前面字符多次,不过后面代替的字符个数得自定义
# print(ret)#[‘aaab‘]
# ret=re.findall("a{1,3}b","abaadfdbasfadfjaaabaaa")#{}代表重复前面字符多次,不过后面代替的字符个数1到3次,不过里面机构有个贪婪匹配性质
# print(ret)#[‘ab‘, ‘aaab‘]
#谈了匹配:在满足条件下的情况,取最多的个数
# 重复匹配结论 *等于[0,正无穷) "+"重复p匹配[1,无穷大) "?"重复匹配[0,1]


#"[]"字符集
# ret=re.findall(‘a[c,d]x‘,"acx")#[]里面字符之间有或的关系,可以在里面多选一 #[]取消原字符的特殊功能,除开(\ ^ -)
# print(ret)
# ret=re.findall(‘a[c,*]x‘,"acx")#[]里面的*就不再有重复的意思 #[]取消原字符的特殊功能
# print(ret)
#
# ret=re.findall(‘a[a-z]x‘,"acx")#a-z:表示从a到z之间的字符 # []里面字符之间有或的关系,可以在里面多选一
# print(ret)
# ret=re.findall(‘[^t]‘,"actx")#尖角号放在[]里面有取反的意思,[]里面有的就除开与里面相同的字符
# print(ret)

 

 





#"\ "反斜杠后面跟元字符去除特殊功能 反斜杠后面跟普通字符实现特殊功能
#\d匹配任何十进制数,它相当于[0-9]
# print(re.findall(‘\d(520)‘,"hdsjh2154542164119545201631624842556527"))
#\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‘,‘idfhd,i an li$st‘))#\b寻找特殊字符
# print(re.findall(r‘\bi‘,‘$idfhd, i an li$st‘))#\b寻找特殊字符
# ret=re.findall(r‘\bblow‘,‘blow‘)#pyton里面的反斜杠本来就有特殊意义,所以我们必须先用r把\转意,在把转义后的\给re赋予特殊意义
# print(ret)

技术分享图片


#匹配出满足条件的第一个结果
# ret=re.search(‘s.b‘,"djkdjjksgbsgbjdjsgb")
# print(ret)
# print(ret.group())#可以用group调用对象里面的值,一般search于group要联用


 




"()"#分组
# ret=re.search(‘(?P<xiong>\d{3})/(?P<li>\w{3})‘,"hjhaadh123fuaaajkdd/kkkjj")
"|"#有或的意义在里面

python之re模块

标签:com   AC   字符集   十进制   特殊   import   log   去除   定义   

原文地址:https://www.cnblogs.com/laoli1020/p/8660774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!