Python 正则提取

Python 正则提取

Python 正则提取

1. 引言

正则表达式是一个强大的工具,用于在文本中进行模式匹配和提取特定信息。在Python中,有一个内置的re模块,可以用于操作正则表达式。

本文将详细介绍Python中正则表达式的用法,并提供一些示例代码和运行结果,以帮助读者更好地理解和使用正则表达式提取信息的方法。

2. 正则表达式基础

正则表达式(Regular Expression)是一个字符序列,可以用来匹配和操作字符串。

Python中正则表达式的基本操作包括:

  • 匹配:使用re.match()或re.search()函数匹配字符串。
  • 替换:使用re.sub()函数替换匹配到的字符串。
  • 拆分:使用re.split()函数按照匹配的模式拆分字符串。

以下是Python中一些常用的正则表达式元字符及其含义:

  • .: 匹配任意单个字符,除了换行符。
  • *: 匹配前一个字符0次或多次。
  • +: 匹配前一个字符1次或多次。
  • ?: 匹配前一个字符0次或1次。
  • []: 匹配括号内的任意字符。
  • ^: 匹配字符串的开头。
  • $: 匹配字符串的结尾。
  • |: 匹配两个或多个正则表达式。

3. 正则表达式示例

3.1 匹配手机号码

import re

def extract_phone_numbers(text):
    pattern = r"\d{11}"  # 匹配11位数字
    phone_numbers = re.findall(pattern, text)
    return phone_numbers

text = "我的手机号码是13888888888,你的是13999999999。"
phone_numbers = extract_phone_numbers(text)
print(phone_numbers)

运行结果:

['13888888888', '13999999999']

3.2 匹配邮箱地址

import re

def extract_email_addresses(text):
    pattern = r"\w+@\w+\.\w+"  # 匹配邮箱地址
    email_addresses = re.findall(pattern, text)
    return email_addresses

text = "我的邮箱是abc@example.com,你的是def@example.com。"
email_addresses = extract_email_addresses(text)
print(email_addresses)

运行结果:

['abc@example.com', 'def@example.com']

3.3 替换敏感词

import re

def replace_sensitive_words(text):
    sensitive_words = ["敏感词1", "敏感词2"]
    for word in sensitive_words:
        pattern = r"\b" + word + r"\b"  # 匹配整个单词
        text = re.sub(pattern, "***", text)
    return text

text = "这句话包含了敏感词1和敏感词2。"
processed_text = replace_sensitive_words(text)
print(processed_text)

运行结果:

这句话包含了***和***。

3.4 拆分字符串

import re

def split_string(text):
    pattern = r"[^\w]"  # 拆分非单词字符
    words = re.split(pattern, text)
    return words

text = "Hello,World!"
words = split_string(text)
print(words)

运行结果:

['Hello', 'World', '']

通过以上示例,可以看到Python正则表达式的强大之处。使用正则表达式,可以方便地提取手机号码、邮箱地址,替换敏感词,以及拆分字符串等操作。

4. 总结

本文介绍了Python中正则表达式的基础知识和常见操作。通过使用re模块提供的函数,我们可以轻松地在文本中提取特定信息。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程