【python 内置模块】re

2024-01-20 00:00:00

目录:

re 模块是一种强大的文本处理工具,通过定义特定模式来检查、搜索、替换或分割字符串。

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

从字符串开头匹配,适合检查字符串是否以特定模式开头。

常见的用途是验证用户输入或数据格式是否符合特定规范。

示例:验证身份证号码格式

身份证号码通常为18位数字,最后一位可能是数字或大写字母X。

import re

def check_id(id_num):
    pattern = r"^\d{17}(\d|X)$"  # ^表示开头,\d{17}匹配17位数字,(\d|X)匹配数字或X,$表示结尾
    result = re.match(pattern, id_num)
    return bool(result)

print(check_id("370781199912011234"))  # True
print(check_id("37078119991201123X"))  # True
print(check_id("37078119991201123Y"))  # False(最后一位不是X或数字)

示例:使用分组提取结构化信息

利用括号 () 进行分组捕获,可以一次性提取多个相关部分。

import re

request_line = "GET /index.html HTTP/1.1"
match = re.match(r'^(GET|POST|PUT) (\S+) HTTP/(\d\.\d)$', request_line)
if match:
    method, path, version = match.groups()
    print(f"Method: {method}, Path: {path}, HTTP Version: {version}")
    # 输出: Method: GET, Path: /index.html, HTTP Version: 1.1