天天看点

re库 正则表达式

中国境内邮政编码 6位

r’[1-9]\d{5}’

[1-9] 字符集,对单个字符给出取值范围

\d 数字,等价于[1-9]

{m} 扩展前一个字符m次

re.search(pattern, string, flags=0)

在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象

pattern: 正则表达式的字符串或原生字符串表示

string: 待匹配字符串

flags: 正则表达式使用时的控制标记

help(re.search)
           
re库 正则表达式
import re

match = re.search(r'[1-9]\d{5}', 'BIT 100081')

if match:
    print(match.group(0))
           
re库 正则表达式

re.match(pattern, string, flags=0)

help(re.match)
           
re库 正则表达式

从一个字符串的开始位置起匹配正则表达式,返回match对象

import re

match = re.match(r'[1-9]\d{5}', 'BIT 100081')
if match:
    print(match.group(0))


import re

match = re.match(r'[1-9]\d{5}', '100081 BIT')
if match:
    print(match.group(0))
           
re库 正则表达式

re.findall(pattern, string, flags=0)

搜索字符串,以列表类型返回全部能匹配的子串

help(re.findall)
           
re库 正则表达式
import re

ls = re.findall(r'[1-9]\d{5}', 'BIT100081 TSU100084')
ls
           
re库 正则表达式

re.split(pattern, string, maxsplit=0, flags=0)

将一个字符串按照正则表达式匹配结果进行分割,返回列表类型

maxsplit: 最大分割数,剩余部分作为最后一个元素输出
help(re.split)
           
re库 正则表达式
import re

print(re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084'))

print(re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084', maxsplit=1))
           
re库 正则表达式

re.finditer(pattern, string, flags=0)

搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象

help(re.finditer)
           
re库 正则表达式
import re

for m in re.finditer(r'[1-9]\d{5}', 'BIT100081 TSU100084'):
    if m:
        print(m.group(0))
           
re库 正则表达式

re.sub(pattern, repl, string, count=0, flags=0)

在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

repl: 替换匹配字符串的字符串

count: 匹配的最大替换次数

help(re.sub)
           
re库 正则表达式
import re 

re.sub(r'[1-9]\d{5}', ':zipcode', 'BIT100081 TSU100084')
           
re库 正则表达式

常用正则表达式实例