Python正则表达式

正则表达式是用来简洁表达一组字符串的表达式

1. 正则表达式的常用操作符

Python正则表达式_第1张图片

2. 经典正则表达式实例

Python正则表达式_第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)

输出结果:


Python正则表达式_第3张图片

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)) 

输出结果:


Python正则表达式_第4张图片

你可能感兴趣的:(Python正则表达式)