10个python中使用正则表达式的场景!

在Python编程中,正则表达式(regex)是强大的工具,能够处理各种复杂的字符串操作.以下是10个常见的正则表达式使用场景,并附上代码示例.


1. 验证电子邮件地址

验证用户输入的电子邮件地址是否符合格式要求.

import re

def validate_email(email):
    pattern = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"
    return re.match(pattern, email) is not None

# 示例
print(validate_email("test@example.com"))  # True
print(validate_email("invalid-email"))     # False

2. 匹配电话号码

提取或验证电话号码格式,如国际电话格式 +1-800-555-1234.


def validate_phone(phone):
    pattern = r"^\+?\d{1,3}[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$"
    return re.match(pattern, phone) is not None

# 示例
print(validate_phone("+1-800-555-1234"))  # True
print(validate_phone("555-1234"))         # True

3. 查找所有URL

从文本中提取所有的URL.

def find_urls(text):
    pattern = r"https?://[^\s]+"
    return re.findall(pattern, text)

# 示例
text = "Check out https://example.com and http://google.com."
print(find_urls(text))  # ['https://example.com', 'http://google.com']

4. 验证日期格式

验证日期是否符合 YYYY-MM-DD 的格式.

def validate_date(date):
    pattern = r"^\d{4}-\d{2}-\d{2}$"
    return re.match(pattern, date) is not None

# 示例
print(validate_date("2024-09-30"))  # True
print(validate_date("30-09-2024"))  # False

5. 从字符串中提取所有数字

提取文本中所有的数字.

def extract_numbers(text):
    return re.findall(r"\d+", text)

# 示例
text = "I have 3 apples, 4 bananas, and 5 oranges."
print(extract_numbers(text))  # ['3', '4', '5']

6. 替换敏感词汇

使用正则表达式替换文本中的敏感词汇,常用于内容审核.

def extract_numbers(text):
    return re.findall(r"\d+", text)

# 示例
text = "I have 3 apples, 4 bananas, and 5 oranges."
print(extract_numbers(text))  # ['3', '4', '5']

7. 提取文件扩展名

从文件名中提取扩展名.

def get_extension(filename):
    pattern = r"\.([a-zA-Z0-9]+)$"
    match = re.search(pattern, filename)
    return match.group(1) if match else None

# 示例
print(get_extension("document.pdf"))  # 'pdf'
print(get_extension("archive.tar.gz"))  # 'gz'

8. 验证密码强度

使用正则表达式验证密码是否满足复杂性要求,比如至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符.

def validate_password(password):
    pattern = r"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
    return re.match(pattern, password) is not None

# 示例
print(validate_password("StrongPass1!"))  # True
print(validate_password("weakpass"))      # False

9. 拆分字符串

使用正则表达式按照多个分隔符拆分字符串.

def split_text(text):
    pattern = r"[ ,;]+"
    return re.split(pattern, text)

# 示例
text = "apple, orange; banana grape"
print(split_text(text))  # ['apple', 'orange', 'banana', 'grape']

10. 删除多余的空格

通过正则表达式删除字符串中的多余空格,只保留一个空格.

def clean_whitespace(text):
    pattern = r"\s+"
    return re.sub(pattern, " ", text).strip()

# 示例
text = "  This  is   a  messy   sentence.   "
cleaned_text = clean_whitespace(text)
print(cleaned_text)  # "This is a messy sentence."

总结

这些正则表达式场景在处理文本时非常常见.掌握它们可以极大提高处理字符串操作的效率,同时也能使代码更加简洁明了.在Python中,正则表达式是不可或缺的工具,熟练运用它们能帮助你解决许多实际问题.


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

点击领取,100%免费!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值