【收藏备用】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个实用示例。正则表达式功能非常强大,这只是冰山一角,大家感觉收藏吧



目录
相关文章
|
4月前
|
Python
"揭秘!Python如何运用神秘的正则表达式,轻松穿梭于网页迷宫,一键抓取隐藏链接?"
【8月更文挑战第21天】Python凭借其强大的编程能力,在数据抓取和网页解析领域表现出高效与灵活。通过结合requests库进行网页请求及正则表达式进行复杂文本模式匹配,可轻松提取网页信息。本示例展示如何使用Python和正则表达式解析网页链接。首先确保已安装requests库,可通过`pip install requests`安装。接着,利用requests获取网页内容,并使用正则表达式提取所有`&lt;a&gt;`标签的`href`属性。
52 0
|
1月前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
45 5
|
1月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
2月前
|
数据安全/隐私保护 Python
Python实用正则表达式归纳
Python实用正则表达式归纳
20 3
|
2月前
|
Python
Python 正则表达式高级应用指南
正则表达式是文本模式匹配的强大工具,Python 的 `re` 模块支持其操作。本文介绍正则表达式的高级应用,包括复杂模式匹配(如邮箱、电话号码)、分组与提取、替换操作、多行匹配以及贪婪与非贪婪模式的区别。通过示例代码展示了如何灵活运用这些技巧解决实际问题。
31 7
|
2月前
|
JavaScript 前端开发 Scala
Python学习十:正则表达式
这篇文章是关于Python中正则表达式的使用,包括re模块的函数、特殊字符、匹配模式以及贪婪与非贪婪模式的详细介绍。
19 0
|
2月前
|
数据采集 开发者 Python
Python正则表达式之re.compile函数
`re.compile`是Python正则表达式处理中一个强大的工具,它通过预先编译正则表达式,不仅提升了执行效率,还增强了代码的组织性和可读性。掌握其使用,对于涉及文本分析、数据清洗、日志处理等领域的Python开发者来说,是非常必要的技能。正确并高效地应用这一功能,可以显著提升程序的性能和维护性。
131 0
|
3月前
|
索引 Python
30天拿下Python之正则表达式
30天拿下Python之正则表达式
20 0
|
3月前
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
48 0
|
3月前
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
49 0