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(r‘d{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(r‘d+‘) #根据所给出的分隔符进行分割。 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的主要内容,如果未能解决你的问题,请参考以下文章