一些使用 re 模块的代码示例

简介: 以下是使用 `re` 模块的十个代码示例,涵盖电话号码匹配、网页链接提取、字符串替换、电子邮件验证、文件名提取、特定单词匹配、日期信息提取、特定格式字符串匹配、字符串分割和中文文本匹配。这些示例展示了正则表达式在文本处理中的强大功能。【10月更文挑战第11天】

以下是一些使用re模块的详细代码示例,希望能帮助你更好地理解和应用该模块:

示例一:匹配电话号码

import re

def is_phone_number(text):
    pattern = r'^\d{3}-\d{3}-\d{4}$'
    match = re.search(pattern, text)
    if match:
        return True
    else:
        return False

text1 = "123-456-7890"
text2 = "1234567890"

print(is_phone_number(text1))  
print(is_phone_number(text2))

在这个示例中,我们定义了一个函数is_phone_number,用于判断输入的文本是否符合特定的电话号码格式(以-分隔的 10 位数字)。

示例二:提取网页链接

import re

html_text = "<a href='https://www.example.com'>Example Link</a>"
pattern = r'href="([^"]+)"'

matches = re.findall(pattern, html_text)
for match in matches:
    print(match)

这个示例展示了如何从包含 HTML 代码的文本中提取出网页链接。

示例三:替换字符串中的特定模式

import re

text = "Hello, 123 World! 456"
pattern = r'\d+'
replacement = 'XXX'

new_text = re.sub(pattern, replacement, text)
print(new_text)

在这里,我们将文本中的数字替换为XXX

示例四:验证电子邮件格式

import re

def is_valid_email(email):
    pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
    match = re.search(pattern, email)
    if match:
        return True
    else:
        return False

email1 = "user@example.com"
email2 = "invalid_email"

print(is_valid_email(email1))  
print(is_valid_email(email2))

这个示例用于验证电子邮件是否符合常见的格式要求。

示例五:提取文件名和扩展名

import re

file_path = "document.txt"
pattern = r'([^/\\]+)(?:\.(.+))?$'

match = re.search(pattern, file_path)
if match:
    file_name = match.group(1)
    extension = match.group(2)
    print(f"文件名: {file_name}, 扩展名: {extension}")
else:
    print("无效的文件路径")

此示例从文件路径中提取出文件名和扩展名。

示例六:匹配特定单词

import re

text = "The quick brown fox jumps over the lazy dog"
pattern = r'\b(quick|lazy)\b'

matches = re.findall(pattern, text)
for match in matches:
    print(match)

这里我们找出文本中特定的单词(quicklazy)。

示例七:提取日期信息

import re

date_text = "2023-09-21"
pattern = r'(\d{4})-(\d{2})-(\d{2})'

match = re.search(pattern, date_text)
if match:
    year = match.group(1)
    month = match.group(2)
    day = match.group(3)
    print(f"年: {year}, 月: {month}, 日: {day}")
else:
    print("无效的日期格式")

这个示例用于从日期字符串中提取出年、月、日等信息。

示例八:匹配特定格式的字符串

import re

text = "123ABC456"
pattern = r'\d+[A-Z]+\d+'

match = re.search(pattern, text)
if match:
    print("匹配成功")
else:
    print("匹配失败")

此示例验证文本是否符合特定的数字和字母组合的格式。

示例九:分割字符串

import re

sentence = "Hello, World! How are you?"
words = re.split(r'\s+', sentence)
for word in words:
    print(word)

通过正则表达式将句子按照空格分割成单词。

示例十:匹配中文文本

import re

chinese_text = "你好,世界!"
pattern = r'[\u4e00-\u9fff]+'

matches = re.findall(pattern, chinese_text)
for match in matches:
    print(match)

这个示例展示了如何匹配中文文本。

以上只是re模块的一些常见应用示例,实际应用中可以根据具体需求进行更多复杂的模式匹配和操作。正则表达式的强大功能使得它在文本处理中非常有用。

目录
相关文章
|
存储 关系型数据库 MySQL
OceanBase数据库 与 mysql 对比
OceanBase数据库 与 mysql 对比
5307 1
|
存储 编译器 C语言
【C语言必知必会 | 第三篇】顺序结构入门,这一篇就够了
【C语言必知必会 | 第三篇】顺序结构入门,这一篇就够了
930 0
|
人工智能 定位技术 图形学
【unity实战】制作敌人的AI,使用有限状态机、继承和抽象类多态 定义不同状态的敌人行为
【unity实战】制作敌人的AI,使用有限状态机、继承和抽象类多态 定义不同状态的敌人行为
546 1
|
机器学习/深度学习 数据可视化 数据挖掘
数据降维 | MATLAB实现T-SNE降维特征可视化
数据降维 | MATLAB实现T-SNE降维特征可视化
|
11月前
|
算法 程序员
程序设计的五个步骤
程序的设计过程,并不是立刻就进行代码设计,一般来讲包括设置文件的存放位置、说明书的设计、代码设计、程序测试、程序调试、注释说明。
769 5
|
11月前
|
存储 Java Apache
Python Number类型详解!
本文详细介绍了 Python 中的数字类型,包括整数(int)、浮点数(float)和复数(complex),并通过示例展示了各种算术操作及其类型转换方法。Python 的 `int` 类型支持任意大小的整数,`float` 类型用于表示实数,而 `complex` 类型用于表示复数。此外,文章还对比了 Python 和 Java 在数字类型处理上的区别,如整数类型、浮点数类型、复数类型及高精度类型,并介绍了各自类型转换的方法。尽管两种语言在语法上有所差异,但其底层逻辑是相通的。通过本文,读者可以更好地理解 Python 的数字类型及其应用场景。
320 2
|
数据采集 Web App开发 数据处理
一步步教你用Python Selenium抓取动态网页任意行数据
使用Python Selenium爬取动态网页,结合代理IP提升抓取效率。安装Selenium,配置代理(如亿牛云),设置User-Agent和Cookies以模拟用户行为。示例代码展示如何使用XPath提取表格数据,处理异常,并通过隐式等待确保页面加载完成。代理、模拟浏览器行为和正确配置增强爬虫性能和成功率。
1732 3
一步步教你用Python Selenium抓取动态网页任意行数据
|
机器学习/深度学习 数据采集 数据可视化
Sklearn入门指南:构建你的第一个机器学习模型
【7月更文第22天】在数据科学与机器学习领域,Scikit-learn(简称sklearn)是一个广泛使用的Python库,以其简洁的API和丰富的功能集而著称。本指南将引领你从安装到使用sklearn构建你的第一个机器学习模型,以一个简单的线性回归任务为例,逐步深入理解这个强大的工具。
299 2
|
存储 Linux 索引
/proc的相关知识
`/proc`是Linux的一个伪文件系统,存储内核运行状态和进程信息。它包含以PID命名的子目录,提供对系统硬件、进程详情的查看和内核状态的修改。`/proc/self`是特殊目录,让进程能直接访问其自身信息,无需知道PID。通过`/proc/self/cmdline`、`cwd`、`exe`、`environ`和`maps`等文件,可以获取进程的命令行、工作目录、可执行文件路径、环境变量和内存映射等信息。`maps`显示内存区域和权限,`mem`则提供进程内存映射,但部分区域不可读。
192 4
保姆级只需五步linux中安装aapt(64位)的方法
保姆级只需五步linux中安装aapt(64位)的方法