>>>
了解正则表达式的基本语法
掌握在Python中使用正则表达式的语法格式
掌握如何使用re模块匹配字符串
掌握如何使用re模块规制字符串的方法
掌握如何使用正则表达式分割字符串
8.1 正则表达式语法
8.1.1 行定位符
^tm # 匹配行头是tm
tm$ # 匹配尾是tm
tm # 任意位置
8.1.2 元字符
“.” # 匹配除换行符以外的任意字符
“\w” # 匹配字母或下划线或汉字
“\s” # 匹配任意的空白符
“\d” # 匹配数字
“\b” # 匹配单词的开始或结束
“^” # 匹配字符串的开始
“$” # 匹配字符串的结束
8.1.3 重复
“?” # 匹配前面字符零次或一次
“+” # 匹配前面字符一次或多次
“*” # 匹配前面字符零次或多次
“{n}” # 匹配前面字符n次
“{n,}” # 匹配前面字符最少n次
“{n,m}” # 匹配前面的字符最少n次,最多m次
8.1.4 字符类
[任意字符]
[\u4e00-\u9fa5] # 匹配一个汉字
8.1.5 排除字符
[^a-zA-Z] # 不是字母的字符串
8.1.6 选择字符
身份证的匹配:
(^\d{15}$) | (^\d{18}&) | (^\d{15}(\d|X|x)$))
8.1.7 转义字符
ip的匹配
[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
8.1.8 分组
(thir|four)th # 匹配thirth或fourtg
[1-9]{1-3}(\.[0-9]{1-3}){3} # 字符串的匹配
8.1.9 在PTHON使用正则表达式语法
'\b\w*\b' # 错误的(需要转义)
'\\b\\w*\\b' # 对的
r'\b\w*\b' # 加R,或r,是对的
8.2 使用re模块实现正则表达式操作
8.2.1 匹配字符串
a, 使用match()方法进行匹配(匹配的是字符串开始位置)
re.match(pattern, string, [flags])
# pattern,模式字符串
# string, 要匹配的字符串
# 表示标志位: 具体,看其他资料
import re
pattern = r'mr-\w+'
match = re.match(patten, string, re.IGNORECASE) # 返回的是match对象(注意是大写的i)
b, 使用search()方法进行匹配(匹配是字符串结束位置)
re.search(pattern, string, [flags]) # 返回的是match对象,
方法同上
8.2.2 替换字符串
re.sub(pattern, repl, string, count, flags)
# 表示模式字符串,
# 表示替换的字符串
# 表示要补查找替换的原始字符串
# 可选:表示替换的最大次数,默认值为0,
# 可选:表示标志位,用于控制匹配方式,
import re
pattern = r'1[3435]\d{9}'
string = '中奖号码为 13242, 联系电话为: 13611112222'
result = re.sub(pattern,'1XXXXXXXXXX', string)
print(result)
8.2.3 使用正则表达式分割字符串
re.split(pattern, string, [maxsplit], [flags])
同上
import re
pattern = r'([?|@])'
str1 = 'zyh?zml?lj?hpc@lzl'
re.split(pattern, str1)
# 注意,上面的"[]"表示匹配"[]"中的一个字符
# 注意, \s表示匹配空字符