Python 正则表达式实现路径格式匹配和提取

2023-04-03 00:00:00 路径 匹配 提取

正则表达式是一种用来匹配字符串的强大工具,它可以帮助我们快速、准确地从文本中提取我们需要的信息。在路径格式匹配中,正则表达式可以用来匹配 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 的各个部分和参数,最后打印输出结果。

相关文章