python_Note_Preview_02_Regular Expression

Posted tlfox2006

tags:

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

Regular Expression 

技术分享图片

技术分享图片

 

技术分享图片

 

技术分享图片

技术分享图片

技术分享图片

 1 Str = BDefe 129032323 23322d3
 2 
 3 mr = re.search(r[1-9]d{5}, Str)   #只匹配第一个位置。
 4 if mr:
 5    print(type(mr))
 6    print(mr.groups)
 7    print(mr.groups())
 8    print(mr.group(0))  #获得匹配后的字符串
 9   print(mr.start())   #匹配字符串在原始字符串的开始位置
10   print(mr.end())    #匹配字符串在原始字符串的结束位置
11   print(mr.span())   #返回(.start(), .end())

#Outcome:

技术分享图片

  

技术分享图片

 Example1:

 1 import re
 2 
 3 #匹配3位数字-3到8个数字        d{3}-d{3,8}
 4 mr = re.match(rd{3}-d{3,8},010-234567)        #加在‘‘中,不做转义字符处理。
 5 print(mr.string)
 6 
 7 #分组
 8 m = re.match(r(d{3})-(d{3,8})$,010-234567)       #分组时,将第一组用括号括起来。^/$以d{3-8}为结首/尾。
 9 print(m.groups())
10 print(m.group(0))        #原始字符串
11 print(m.group(1))
12 print(m.group(2))
13 14 #分割字符串
14 >>> p = re.compile(rd+)          #根据所给出的分隔符进行分割。
15 >>> print(p.split(one1two2three333))
16 [one, two, three, ‘‘]

 #Outcome:

技术分享图片

 Example2: 

 1 >>> t = 2:34:43;343:   er:12:33:32
 2 >>> mr=re.match(r([0-3]?[0-9]+:[0-5]?[0-9]+:[0-5]?[0-9]+),t)  #必须从一个字符开始位置起匹配,并只能匹配一个。
 3 >>> type(mr)
 4 <class _sre.SRE_Match>
 5 >>> print(mr.groups)     #不带括号是地址空间。
 6 <built-in method groups of _sre.SRE_Match object at 0x7f87bcd2bf30>
 7 >>> print(mr.groups())
 8 (2:34:43,)
 9 >>> print(mr.group(0))    #原始字符串
10 2:34:43
11 >>> print(mr.group(1))    #第一个元组
12 2:34:43
13 >>> print(mr.group(2))
14 Traceback (most recent call last):
15   File "<stdin>", line 1, in <module>
16 IndexError: no such group
17 >>> print(mr.groups().strip)              #mr.groups()是一个元组。
18 Traceback (most recent call last):
19   File "<stdin>", line 1, in <module>
20 AttributeError: tuple object has no attribute strip
21 >>> mr=re.match(r^([0-3]?[0-9]+):([0-5]?[0-9]+):([0-5]?[0-9]+),t)  #将每个字段分开,并放入元组中。
22 >>> print(mr.groups())
23 23(2, 34, 43)

技术分享图片

Examples:

 1 >>> t = we2:34:43;343:er:12:22:33
 2 >>> mr=re.match(r([0-3]?[0-9]+:[0-5]?[0-9]+:[0-5]?[0-9]+),t)    #match,如果首字母不匹配,就匹配不上了。
 3 >>> print(mr.groups())
 4 Traceback (most recent call last):
 5 "<stdin>", line 1, in <module>
 6 AttributeError: NoneType object has no attribute groups
 7 
 8 >>> m = re.findall(r([0-3]?[0-9]+:[0-5]?[0-9]+:[0-5]?[0-9]+),t)  #findall,无需从头匹配,并可以匹配所有。
 9 >>> type(m)
10 <class list>
11 >>> print(m)
12 [2:34:43, 12:22:33]
13 >>> t = 2:34:43;343:er: 12:22:33
14 >>> m = re.findall(r^([0-3]?[0-9]+:[0-5]?[0-9]+:[0-5]?[0-9]+),t)  #以数字开头。
15 >>> print(m)
16 [2:34:43]

技术分享图片

技术分享图片

技术分享图片

 

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

学习进度02_2

Python re.sub 字符串上的多行

requests实践02_下载斗图拉最新表情包

02_Django-路由配置-HTTP协议的请求和响应

02_Django-路由配置-HTTP协议的请求和响应

02_Django-路由配置-HTTP协议的请求和响应