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

目录
相关文章
|
2月前
|
编译器 API 定位技术
API和SDK的区别
API(应用程序编程接口)和SDK(软件开发工具包)的主要区别在于范围、内容、抽象程度及使用方式。API定义了软件组件间的交互规则,范围较窄,更抽象;而SDK提供了一整套开发工具,包括API、编译器、调试器等,范围广泛,具体且实用,有助于提高开发效率。
|
5月前
|
机器学习/深度学习 缓存 分布式计算
我们来看一个简单的Python代码示例,它使用`joblib`模块来并行执行一个函数:
我们来看一个简单的Python代码示例,它使用`joblib`模块来并行执行一个函数:
|
7月前
|
C# Python
如何让 StyleCop 忽略 refit 自动生成的代码
创建自定义规则:我们需要创建一个自定义规则,该规则将用于排除特定类型的代码,我们可以创建一个自定义规则,用于检查类名是否以大写字母开头,然后忽略符合此规则的代码。
|
7月前
|
XML JSON API
Python 的网络编程:解释什么是 RESTful API?
Python 的网络编程:解释什么是 RESTful API?
70 1
ListUtils类代码示例
ListUtils类代码示例
323 0
|
监控 程序员 编译器
代码的调试技巧
代码的调试技巧
|
机器学习/深度学习 JSON 文字识别
|
API 开发工具
|
存储 JSON 监控
调试别人的API,一般有哪些步骤?
调试别人的API,一般有哪些步骤?

热门文章

最新文章