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

17.python全栈之路:正则表达式全面解析

时间:2017-05-19 00:52:32      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:dal   字符串替换   pre   log   语音   sea   nbsp   字符   解析   

正则表达式

一.认识正则表达式

  正则表达式是什么 ?

    正则表达式是一门单独的语音,不仅属python,很多语言都可以调用它,它自成体系

  正则表达式有什么用呢?

    首先我们看一下python自带的字符串的一些功能方法

str1 = "abcdefg"
result1 = str1.find("b")
result2 = str1.find("bc")
result3 = str1.split("b")
result4 = str1.replace("ab", "AB")
print("b的位置是:%s" % result1)
print("bc的位置是:%s" % result2)
print("字符串以b分割成:%s" % result3)
print("字符串替换后的结果是:%s" % result4)

  我们可以观察得到,无论是查找,分割,或者替换都需要明确具体的元素

  而正则表达式可以给出一个pattern,符合要求的可以有很多,不仅仅局限唯一

 

二.正则表达式的元字符及其意义

  . :匹配任意除换行符的单个字符

  ^:行首锚定

  $:行尾锚定

  *:匹配任意次,贪婪匹配 等价于{0,}

  +:匹配1到多次,贪婪匹配 降价与{1,}

  ?:匹配0或1次,贪婪匹配 降价与{0,1}

  {}:固定次数

    {3}:3次

    {3,5}:3到5次

  \:

    1.反斜杠后边跟元字符去掉特殊功能

    2.反斜杠后边跟普通字符实现特殊功能

      \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:匹配一个单词边界,也就是指单词和空格间的位置     

    3.引用序号对应的字组所匹配的字符串

      re.search(r"(alex)(eric)com\2", "alexericcomeric").group()

      ‘alexericcomeric‘    

  []:字符集中的任意一个,字符集中的元字符不用转义

    ^:字符集中的^表示非

      re.findall(‘[^1-9]‘,‘a1b2c3‘)

      [‘a‘, ‘b‘, ‘c‘]

    \:转义的普通字符\d,\w,\s等用法不变

      re.findall(‘[\d]‘,‘ww3 wa8.d0‘)

      [‘1‘, ‘2‘, ‘3‘]

  ():分组,将一串字符做为一个整体

    贪婪模式:

         re.search(r"a(\d+)","a12345678b").group()

         a12345678

    非贪婪模式:

         re.serach(r"a(\d+?)","a12345678b").group()

         a1

三.贪婪模式的存在机制

re.findall(r"a(\d+?)", "a23b") #非贪婪模式

[‘2‘]  #匹配括号里面的

  re.findall(r"a(\d+)b", "a23b") #如果前后均有限定条件,则不按非贪婪模式匹配

  [‘23‘]

  re.findall(r"a(\d+?)b", "a23b") #如果前后均有限定条件,则不按非贪婪模式匹配

  [‘23‘]

re.findall(r"a(\d+)", "a23b")  #贪婪模式

[‘23‘]

 

 

    

         

  

  

17.python全栈之路:正则表达式全面解析

标签:dal   字符串替换   pre   log   语音   sea   nbsp   字符   解析   

原文地址:http://www.cnblogs.com/wuwen19940508/p/6876246.html

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