python正则表达式如何使用
创始人
2024-11-17 17:01:44
0次

正则表达式简介:

正则表达式(regex)用于探索给定字符串中的固定模式。我们想找到的模式可以是任何东西。可以创建类似于查找电子邮件或手机号码的模式。还可以创建查找以a开头、以z结尾的字符串的模式。

创建模式:

使用正则表达式时,首先需要学习的是如何创建模式。接下来将对一些最常用的模式进行逐一介绍。可以想到最简单的模式是一个简单的字符串。

pattern = r'times'
string = "It was the best of times, it was the worst of times."
print(len(re.findall(pattern,string)))

为了帮助创建复杂的模式,正则表达式提供了特殊的字符/操作符。下面来逐个看看这些操作符。

1、操作符

这在第一个例子中使用过,可用于找到符合这些方括号中条件的一个字符。

  • [abc]-将查找文本中出现的所有a、b或c

  • [a-z]-将查找文本中出现的所有从a到z的字母

  • [a-z0–9A-Z]-将查找文本中出现的所有从A到Z的大写字母、从a到z的小写字母和从0到9的数字。

Python中运行下列代码:

pattern = r'[a-zA-Z]'
string = "It was the best of times, it was the worst of times."
print(len(re.findall(pattern,string)))

2、点算符

点运算符(.) 用于匹配除换行符以外的任何字符。运算符最大的优点是,它们可以结合使用。

3、一些元序列

在使用正则表达式时,一些模式会经常被用到。因此正则表达式为这些模式创建了一些快捷方式。最常用的快捷方式如下:

  • \w,匹配任何字母、数字或下划线。相当于[a-zA-Z0–9_]

  • \W,匹配除字母、数字或下划线以外的任何内容。

  • \d,匹配任何十进制数字。相当于[0–9]。

  • \D,匹配除十进制数字以外的任何数字。

正则表达式函数

目前为止,只使用了 re包中的findall 函数,其实还有很多其他函数。下面来逐个介绍。

1、findall

上面已经使用了 findall。这是我最常使用的一个。下面来正式认识一下这个函数吧。

输入:模式和测试字符串

输出:字符串列表。

#USAGE:
pattern = r'[iI]t'
string = "It was the best of times, it was the worst of times."
matches = re.findall(pattern,string)
for match in matches:
print(match)------------------------------------------------------------
It
It
2、搜索
输入:模式和测试字符串
输出:首次匹配的位置对象。
#USAGE:
pattern = r'[iI]t'
string = "It was the best of times, it was the worst of times."
location = re.search(pattern,string)
print(location)
------------------------------------------------------------
<_sre.SRE_Match object; span=(0, 2), match='It'>
可以使用下面编程获取该位置对象的数据:
print(location.group())
------------------------------------------------------------
'It'

3、替换

这个功能也很重要。当使用自然语言处理程序时,有时需要用X替换整数,或者可能需要编辑一些文件。任何文本编辑器中的查找和替换都可以做到。

输入:搜索模式、替换模式和目标字符串

输出:替换字符串

string = "It was the best of times, it was the worst of times."
string = re.sub(r'times', r'life', string)
print(string)
------------------------------------------------------------
It was the best of life, it was the worst of life.

Python正则表达式应用范围:

1、PAN编号

2、查找域名

3、查找电子邮件地址

下面的正则表达式用于在长文本中查找电子邮件地址。

match=re.findall(r'([\w0-9-._]+@[\w0-9-.]+[\w0-9]{2,3})',string)

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...