正则表达式是用来简洁表达一组字符串的表达式
1. 正则表达式的常用操作符
2. 经典正则表达式实例
3. Re库使用
3.1 两种用法
import re
#函数式用法:一次性操作
match = re.search(r'[1‐9]\d{5}','BIT 100081')
if match:
print(match.group(0))
#面向对象用法:编译后的多次操作
pat = re.compile(r'[1‐9]\d{5}')
match = pat.search('BIT 100081')
if match:
print(match.group(0))
match = pat.search('100082 BIT 100081')
if match:
print(match.group(0))
输出结果:
3.2 Re库主要功能函数
import re
#1. 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
match = re.search(r'[1-9]\d{5}','430074 BIT 100081 430074')
if match:
print("search:" + match.group(0))
#2. 从一个字符串的开始位置起匹配正则表达式,返回match对象
match = re.match(r'[1-9]\d{5}','430074 BIT 100081')
if match:
print("match:" + match.group(0))
#3. 搜索字符串,以列表类型返回全部能匹配的子串
list= re.findall(r'[1-9]\d{5}','430074 BIT 100081')
print("findall:" + str(list))
#4. 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
list= re.split(r'[1-9]\d{5}','TSU 430074 BIT 100081END 430008 kk',maxsplit=2)
print("split:" + str(list))
#5. 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
for m in re.finditer(r'[1-9]\d{5}','430074 BIT 100081'):
if m:
print("finditer:" + m.group(0))
#6. 在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
str = re.sub(r'[1-9]\d{5}','INSTEADED','430074 BIT 100081')
print("sub:" + str)
输出结果:
4. 贪婪匹配和最小匹配
import re
#python 默认是贪婪匹配
match = re.search(r'PY.*N','PYANBNCNDN')
if match:
print(match.group(0))
#加?最小匹配
match = re.search(r'PY.*?N','PYANBNCNDN')
if match:
print(match.group(0))
输出结果:
网友评论