背景
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,由于其简单的语法、强大的工具库等优势被很多人青睐,应用于各个行业之中。
准备
安装 Python 解释器/anaconda。
安装 jupyter lab。
新建 notebook(python3)文件。
re模块
匹配方法
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
# 导入 re 模块
import re
print(re.match('www', 'www.example.com').span()) # 在起始位置匹配
print(re.match('com', 'www.example.com')) # 不在起始位置匹配
compile 方法
re.compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和search() 这两个函数使用。
pattern = re.compile(r'\d+') # 用于匹配至少一个数字
n = pattern.match('one12twothree34four') # 查找头部,没有匹配
print(n)
# 从'e'的位置开始匹配,没有匹配
m = pattern.search('one12twothree34four')
print(m)
print(m.group())
输出:
None
<re.Match object; span=(3, 5), match='12'>
12
其他方法
re.sub 用于替换字符串中的匹配项
phone = "2021-0101-000 # 这是一个电话号码"
num = re.sub(r'#.*$', "", phone) # 删除字符串中的 Python 注释
print("电话号码是: ", num)
num = re.sub(r'\D', "", phone)# 删除非数字(-)的字符串
print("电话号码是 : ", num)
输出:
电话号码是: 2021-0101-000
电话号码是 : 20210101000
re. findall 方法查找所有的符合条件的文本
phone = "2021-0101-000 # 这是一个电话号码 0"
num = re.findall(r'0', phone)# 查找所有的 0
print( num)
输出:
['0', '0', '0', '0', '0', '0', '0']
re.split 方法 匹配的子串将字符串分割后返回列表
re.split(pattern, string[, maxsplit=0, flags=0])
phone = "2021-0101-000 # 这是一个电话号码"
re.split(r"-",phone)
输出:
['2021', '0101', '000 # 这是一个电话号码']