Skip to content

正则表达式:模式匹配与文本提取 ​

re模块基础 ​

python
import re

# 匹配
match = re.match(r'\d+', '123abc')
print(match.group())  # '123'

# 搜索
search = re.search(r'\d+', 'abc123def')
print(search.group())  # '123'

# 查找所有
findall = re.findall(r'\d+', 'a1b22c333')
print(findall)  # ['1', '22', '333']

# 替换
result = re.sub(r'\d+', 'X', 'a1b22c333')
print(result)  # 'aXbXcX'

常用模式 ​

python
email_pattern = r'[\w.-]+@[\w.-]+\.\w+'
phone_pattern = r'\d{3}-\d{4}-\d{4}'
url_pattern = r'https?://[\w./]+'

捕获组 ​

python
match = re.search(r'(\d{4})-(\d{2})-(\d{2})', '2024-09-20')
print(match.groups())  # ('2024', '09', '20')
print(match.group(1))  # '2024'

练习 ​

  1. 邮箱验证:验证邮箱格式是否合法。
  2. 提取URL:从文本中提取所有URL。
  3. 日期格式转换:YYYY-MM-DD转DD/MM/YYYY。
  4. 敏感词过滤:用正则替换敏感词。

答案:第三章答案

下一节:日期与时间

用心记录每一步成长