【收藏备用】Python正则表达式的7个实用技巧

简介: 【收藏备用】Python正则表达式的7个实用技巧

Python正则表达式的实用技巧

正则表达式是Python中非常强大和灵活的文本处理工具。它可以用来在文本中搜索、提取、替换那些符合某些模式的字符串。这里我将介绍7个Python正则表达式的实用示例,并给出详细的代码注释,帮助大家更好地理解和运用正则表达式。

1. 验证邮箱地址

我们可以使用正则表达式来验证一个字符串是否为合法的邮箱地址:

import re
email = "john@example.com"
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$' 
match = re.match(pattern, email)
if match:
    print("Valid Email") 
else:
    print("Invalid Email")

这里的正则表达式模式可以匹配像 john@example.com 这样的邮箱地址。

  • ^$ 分别匹配字符串的开始和结束
  • [a-zA-Z0-9_.+-]+ 可以匹配邮箱地址的用户名部分
  • @ 匹配字面上的 @ 符号
  • [a-zA-Z0-9-]+ 匹配邮箱服务提供商的域名
  • \. 匹配一个点号
  • [a-zA-Z0-9-.]+ 匹配顶级域名如 com/cn

2. 提取电话号码

我们可以通过组匹配来提取文本中的电话号码:

import re
text = "My number is 010-12345678"
pattern = r'(\d{3,4}-\d{7,8})'
match = re.search(pattern, text)
if match:
    print(match.group(1))
  • (\d{3,4}-\d{7,8}) 定义了一个匹配模式分组,它可以匹配形如010-12345678的电话号码
  • match.group(1) 返回第一个子组匹配到的内容,即电话号码字符串

3. 替换敏感词汇

正则表达式的 sub() 方法可以实现替换文本中的指定词汇:

import re
text = "Our company made $1000 in sales last month." 
pattern = r'\$[0-9]+'
sub_text = re.sub(pattern, '[REDACTED]', text)
print(sub_text)  
# Our company made [REDACTED] in sales last month.

这里我们将文本中的财务数据(如 $1000)替换为了 [REDACTED]。

4. 删除注释

要从代码中删除注释,可以:

import re
code = "# This is a comment\nprint('Hello world')"
pattern = r'#.*'  
cleaned_code = re.sub(pattern, '', code) 
print(cleaned_code)
# print('Hello world')

#.* 匹配以 # 开头到行末的注释内容。

5. 解析网页标签

正则表达式可以解析、提取网页的标签内容:

html = "<p>Hello World</p>"
pattern = r'<(\w+)>(.*?)</\1>'  
match = re.search(pattern, html)
if match:
    print(match.group(1)) # p
    print(match.group(2)) # Hello World

这里使用了组匹配来分别提取标签名和标签内容。

6. 匹配重复的词

查找文本中重复出现的词汇:

import re
text = "This is is a test string"
pattern = r'\b(\w+)\s+\1\b' 
match = re.search(pattern, text)  
if match:
    print(match.group(1)) # is

\1 表示引用分组1匹配到的内容,所以可以找出重复的词。

7. 查找和替换

re.sub() 同时支持查找和替换:

import re
text = "Today is 2021/01/01" 
pattern = r'(\d+)/(\d+)/(\d+)'
new_text = re.sub(pattern, r'\3-\1-\2', text)  
print(new_text)
# Today is 2021-01-01

这里我们同时提取了年、月、日字段,并将其改成了 YYYY-MM-DD 的格式。

以上是Python正则表达式的7个实用示例。正则表达式功能非常强大,这只是冰山一角,大家感觉收藏吧



目录
相关文章
|
11月前
|
Python
131 python高级 - 正则表达式(re模块操作)
131 python高级 - 正则表达式(re模块操作)
66 0
|
10天前
|
Python
Python 正则表达式高级应用指南
正则表达式是文本模式匹配的强大工具,Python 的 `re` 模块支持其操作。本文介绍正则表达式的高级应用,包括复杂模式匹配(如邮箱、电话号码)、分组与提取、替换操作、多行匹配以及贪婪与非贪婪模式的区别。通过示例代码展示了如何灵活运用这些技巧解决实际问题。
17 7
|
5月前
|
缓存 运维 前端开发
第十六章 Python正则表达式
第十六章 Python正则表达式
|
5月前
|
JSON 数据格式 C++
精心整理了100+Python字符串常用操作,收藏备用!
精心整理了100+Python字符串常用操作,收藏备用!
|
Python
【从零学习python 】67.Python中的re模块:正则替换与高级匹配技术
【从零学习python 】67.Python中的re模块:正则替换与高级匹配技术
72 2
|
缓存 API C++
|
XML 前端开发 数据安全/隐私保护
Python3,正则表达式查询手册,这一篇就够。
Python3,正则表达式查询手册,这一篇就够。
30942 1
Python程序开发——第十章 正则表达式(ヾ(•ω•`)o那么复杂的正则表达式看完这一篇就懂啦)
Python程序开发——第十章 正则表达式(ヾ(•ω•`)o那么复杂的正则表达式看完这一篇就懂啦)
Python程序开发——第十章 正则表达式(ヾ(•ω•`)o那么复杂的正则表达式看完这一篇就懂啦)
|
自然语言处理 Python Windows
Python基础库-正则表达式库
学习了解Python基础库-正则表达式库。
132 0
Python基础库-正则表达式库
|
JSON 数据格式 C++
精心整理了100+Python字符串常用操作,收藏备用!(下)
精心整理了100+Python字符串常用操作,收藏备用!(下)