Python 正则表达式实现路径格式匹配和提取
正则表达式是一种用来匹配字符串的强大工具,它可以帮助我们快速、准确地从文本中提取我们需要的信息。在路径格式匹配中,正则表达式可以用来匹配 URL 路径中的各个部分,例如协议、域名、路径、参数等。下面是一些常用的正则表达式元字符和符号:
- .:匹配除换行符以外的任意字符。
- *:匹配前一个字符0次或多次。
- +:匹配前一个字符1次或多次。
- ?:匹配前一个字符0次或1次。
- ^:匹配字符串的开头。
- $:匹配字符串的结尾。
- []:匹配中括号中的任意一个字符。
- ():将其中的表达式分组,方便后续使用。
下面是 Python 正则表达式实现路径格式匹配和提取的代码演示:
import re # 匹配 URL 中的协议、域名和路径 url_pattern = r'^(\w+):\/\/([\w\.]+)\/([\w\/]*)$' url = 'https://pidancode.com/about' matches = re.match(url_pattern, url) if matches: protocol = matches.group(1) domain = matches.group(2) path = matches.group(3) print(f"协议:{protocol}\n域名:{domain}\n路径:{path}") # 匹配 URL 中的参数 params_pattern = r'([\?\&])([\w\-]+)=([\w\-\%]+)' params = '?id=123&name=%E7%9A%AE%E8%9B%8B%E7%BC%96%E7%A8%8B' matches = re.findall(params_pattern, params) if matches: print("参数:") for match in matches: key = match[1] value = match[2] print(f"{key}={value}")
上述代码中,首先定义了两个正则表达式模式,一个用来匹配 URL 中的协议、域名和路径,另一个用来匹配 URL 中的参数。接着,分别使用 re.match 和 re.findall 函数进行匹配,获取 URL 的各个部分和参数,最后打印输出结果。
相关文章