python学习day12

Posted Duke77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习day12相关的知识,希望对你有一定的参考价值。

正则表达式的学习

 

#codeing:UTF-8
#__author__:Duke
#date:2018/3/17/017 23:29
import re

#方法一  findall  全找
ret = re.findall(w\w{2},hello world)
print(ret)

# 元字符  11个
# .  通配符
ret = re.findall(w..,hello world)  # w..  点点任意指代,一个代指一个字符
print(ret)
ret = re.findall(w.l,hello w\rld)  # w..  点点任意指代,一个代指一个字符
print(ret)   #  不能指代“\"字符

# ^   尖角符
ret = re.findall("^h...o","hjasdfhello")   #只从开始匹配
print(ret)

#  $  dollor  符号
ret = re.findall("d..e$","hjasdukefhflle")   #只从末尾匹配
print(ret)

#  * 重复匹配   [0  无穷)个
ret = re.findall("du*","hjasdukefhfllfdukeeerffrefwegduuuuekw")   #只从末尾匹配
print(ret)

#  + 重复匹配   [1  无穷)个
ret = re.findall("du+","hjasdukefhfllfdkeeerffrefwegduuuuekw")
print(ret)   #至少一个u

# #  + 重复匹配   [1  无穷)个
ret = re.findall("du+","hjasdukefhfllfdkeeerffrefwegduuuuekw")
print(ret)   #至少一个u

#  ?   0或则1个 d
ret = re.findall("d?u","hjasdukefhfllfdkeeerffrefwegduuuuekw")
print(ret)

# { }  在区间内均可
ret = re.findall("du{1,2}","hjasdukefhfllfdkeeerffrefwegduuuuekw")
print(ret)   #贪难匹配,按最多的匹配
# 结论:* =={0,+无穷}   + == {1,+无穷}    ?== {0,1}

# []   字符集
ret = re.findall(a[c,d,e,s,]x,asx)   #是 or 意思
print(ret)

ret = re.findall([a-z],asx)   # - 表示范围
print(ret)

#     注意 [] 字符集  :取消元字符的作用、  (  \  ^  - )这三个除外
ret = re.findall([w,,],awdx*,)   #  *变为普通字符
print(ret)

ret = re.findall([^a],awdx*,)   #  ^  取补集  即为除  a 的元素
print(ret)

ret = re.findall([^a,w],awdx*,)   #  []  中的全部元素非  包括,
print(ret)  #[‘d‘, ‘x‘, ‘*‘]

#  \  斜杠
#斜杠后的元字符 去除特殊功能
#斜杠后的一些普通字符实现特殊功能
#  \d  表示数字  [0,9]
print(re.findall(\d{11},hqfuhi8712648721485))   #匹配11个数字
# [‘87126487214‘]
#  \D 表示[^0=9]
print(re.findall(\D{5},hqfuhi8712648721485))   #匹配5个字符
# # [‘hqfuh‘]
# #  \s 表示任意空字符]
print(re.findall(\s,hqfu\thi87 1264\r8721485))
# # [‘\t‘, ‘ ‘, ‘\r‘]
# #  \S 表示任意非空字符]
print(re.findall(\S,hqfu\thi87 1264\r8721485))
# [‘h‘, ‘q‘, ‘f‘, ‘u‘, ‘h‘, ‘i‘, ‘8‘, ‘7‘, ‘1‘, ‘2‘, ‘6‘, ‘4‘, ‘8‘, ‘7‘, ‘2‘,
#  \w 表示任意数字  字母  字符]
#  \W 表示任意非数字  字母  字符]
#  \b 表示特殊字符的边界
print(re.findall(r\bi,hello i an duke))

  #\+
ret = re.search(a+,aaawdx*,)   #
print(ret.group())  #aaa
ret = re.search(a\+,aaawdx*,)   #
print(ret)  #None

# 两种方法解决标红
ret = re.findall(r\\,aaawdxD:\c)   #
print(ret)  #[‘\\‘]
ret = re.findall(\\\\,aaawdxD:\c)   #
print(ret)  #[‘\\‘]

#   用结果理解
ret = re.search(r\bduke,duke)   #  r表示原生字符串
print(ret.group())  #duke
ret = re.search(\bduke,duke)   #  r表示原生字符串
print(ret)  #None

#  ()做分组   |
print(re.search((as)+,sdjkasf).group())  #as
print(re.search((as+),sdjkasf).group())  #as
print(re.search((as)|3,sdj3kas3f3).group())  #整体或
print(re.findall((as)|3,sdj3kas3f3) ) #[‘‘, ‘as‘, ‘‘, ‘‘]

# #用于文件路径
ret = re.search((?P<id>\d{3})/(?P<name>\w{3}),dghwwweeejyaf123/ooo)
print(ret.group())
print(ret.group(id))
print(ret.group(name))

# 二:re  的方法
#findall()  :返回全部的结果,以list的形势
# re.search()  :返回一个对象 ,对象通过 group方法返回结果
# re.match()   只在字符串开始开始匹配  ,返回的也是一个对象  group
# re.split()  :
print(re.split([k,s],dukehsijik))   #这个很重要
print(re.split([k,s],dskehsijik))   #注意这个的分法

#sub()  替换
print(re.sub(d..e,haha,jiewjfrewdukeshjs))
principle= re.compile(d..e)  #编译规则
ret = principle.findall(iewjfrewdukeshjs)
print(ret)   #[‘duke‘]

 

以上是关于python学习day12的主要内容,如果未能解决你的问题,请参考以下文章

python学习day12

Python学习day1作业

python学习点滴记录-Day12-前端基础之html

python学习道路(day12note)(mysql操作,python链接mysql,redis)

python 机器学习有用的代码片段

day1-python学习