正则表达式(Regular Expression,简称 Regex)是一种富强的文本处理东西,它容许我们经由过程定义特定的形式来婚配、查找、调换或验证文本数据。在数据处理、文本分析、形式辨认等多个范畴,正则表达式都发挥着至关重要的感化。本文将深刻探究正则表达式的基本知识、实战技能,并经由过程具体的案例剖析,帮助你轻松控制这一神奇利器。
正则表达式由字符跟标记构成,重要包含以下多少类:
.
、^
、$
、*
、+
、?
、{}
、[]
、()
等。[a-z]
、[0-9]
等。*
(零次或多次)、+
(一次或多次)、?
(零次或一次)等。()
。.
:婚配除换行符以外的恣意字符。^
:婚配输入字符串的开端地位。$
:婚配输入字符串的结束地位。*
:婚配前一个字符零次或多次。+
:婚配前一个字符一次或多次。?
:婚配前一个字符零次或一次。{}
:指定婚配的次数,如 {3}
表示婚配前一个字符3次。假设我们须要从以下文本中提取出电子邮件地点:
这是一段示例文本,包含多个电子邮件地点:example1@example.com、example2@example.com、example3@example.com。
我们可能利用正则表达式 r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
来婚配电子邮件地点。
import re
text = "这是一段示例文本,包含多个电子邮件地点:example1@example.com、example2@example.com、example3@example.com。"
emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)
print(emails)
输出成果:
['example1@example.com', 'example2@example.com', 'example3@example.com']
假设我们须要从以下文本中提取出全部手机号码:
接洽人信息如下:张三,手机:13800138000;李四,手机:13900139000。
我们可能利用正则表达式 r'\b1[3-9]\d{9}\b'
来婚配手机号码。
import re
text = "接洽人信息如下:张三,手机:13800138000;李四,手机:13900139000。"
phone_numbers = re.findall(r'\b1[3-9]\d{9}\b', text)
print(phone_numbers)
输出成果:
['13800138000', '13900139000']
假设我们须要将以下文本中的全部数字调换为星号:
这是一个示例文本,包含数字:1234567890。
我们可能利用正则表达式 r'\d'
来婚配数字,并利用 re.sub()
函数停止调换。
import re
text = "这是一个示例文本,包含数字:1234567890。"
replaced_text = re.sub(r'\d', '*', text)
print(replaced_text)
输出成果:
这是一个示例文本,包含星号:**********。
经由过程以上实战案例,我们可能看到正则表达式在文本处理中的富强功能。控制正则表达式,将使你在数据处理、文本分析等范畴锦上添花。