re.finditer方法和groups() group() groupdict()


  

p='''bottle\r\nbag\r\nbig\napple''' import re regex=re.compile(r'\bb(?P<middle>\w)(?P<tail>g)') mat=regex.finditer(p) print(mat) for m in mat: print(m.groups()) # 匹配到的所有分組(包括命名分組) # print(m.group()) # m.group() == m.group(0) 匹配到的所有內容,與分組無關 print(m.group(0)) print(m.group(1)) print(m.group(2)) print(m.groupdict())

 

迭代每個匹配到的整體

 

 

 

groups()取所有分組(包括命名分組)為一個元組

groupdict()取所有命名分組為dict

group()按編號取值(包括命名分組)

都是針對<re.Match object; span(0,6),match='bottle'>對象操作

 

import re p='''bottle\r\nbag\r\nbig\napple''' regex=re.compile('(b)(\w+)',re.M|re.I) b=regex.match(p) print(b) print(b.groups(),b.group(0),p[b.start():b.end()]) print(b.groupdict())

 

 

 一個快速取值的方法是b.group()或b.group(0)

 

import re p='''bottle\r\nbag\r\nbig\napple''' regex=re.compile('(b)(\w+)',re.M|re.I) b=regex.search(p,1) print(b.groups())

 

 

 指定起始位置

 

import re p='''bottle\r\nbag\r\nbig\napple''' regex=re.compile(r'(b\w+)\r\n(?P<name1>b\w+)\r\n(?P<name2>b\w+)') b=regex.match(p) print(b) print('''b.group()= {}'''.format(b.group(0))) print(b.groups(),b.group(1),b.group(2),b.group(3)) print(b.groupdict()) print(b.groupdict()['name1']) print(b.groupdict()['name2'])

 

 

 

import re p='''bottle\r\nbag\r\nbig\napple''' regex=re.compile(r'b\w+\r\n(?P<name1>b\w+)\r\n(?P<name2>b\w+)') b=regex.findall(p) print(b) # 只匹配到一個,為分組形成的元組 for m in b[0]: print(type(m),m)

 

 

 

import re p='''bottle\r\nbag\r\nbig\napple''' regex=re.compile(r'(b\w+)\r\n(?P<name1>b\w+)\r\n(?P<name2>b\w+)') b=regex.findall(p) print(b) # 只匹配到一個,為分組形成的元組 for m in b[0]: print(type(m),m)

 

 

 

import re p='''bottle\r\nbag\r\nbig\napple''' regex=re.compile('(?P<head>b\w+)') b=regex.finditer(p) print(b) for m in b: # finditer找到一個匹配,就yield一個re.Match對象 print(type(m),m,m.group(),m.group('head'),m.groupdict()['head'])

 

 

 

 

 

import re
p='''bottle\r\nbag\r\nbig\napple'''


regex=re.compile('(b)(\w+)')
b=regex.findall(p)
print(b) # 如果匹配中有分組,則元素為元組,忽略命名分組
for m in b:
print(m)

  

 

 

 

import re s='''os.path([path]) sub-path''' print(re.split('[^-\w]+',s)) # 將-作為連字符

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM