python进阶(20) 正则表达式的超详细使用

正则表达式(Regular Expression,在代码中常简写为regexregexpREre)是预先定义好的一个“规则字符率”,通过这个“规则字符串”可以匹配、查找和替换那些符合“规则”的文本。
  虽然文本的查找和替換功能可通过字符串提供的方法实现,但是实现起来极为困难,而且运算效率也很低。而使用正则表达式实现这些功能会比较简单,而且效率很高,唯一的困难之处在于编写合适的正则表达式。
  Python 中正则表达式应用非常广泛,如数据挖掘、数据分析、网络爬虫、输入有效性验证等,Python 也提供了利用正则表达式实现文本的匹配、查找和替换等操作的 re 模块。

1.1 正则表达式字符串

正则表达式是一种字符串,正则表达式字符串是由普通字符和元字符组成的。
1)普通字符
普通字符是按照字符字面意义表示的字符。
2)元字符
元字符是预先定义好的一些特定字符,比如\w\.都属于元字符。

1.1.1 元字符

元字符(Metacharacters)是用来描述其他字符的特殊字符,它由基本元字符和普通字符构成。基本元字符是构成元字符的组成要素。基本元字符主要有14个,具体如下图所示。

字符说明
\ 转义符,表示转义
. 表示任意一个字符
+ 表示重复1次或多次
* 表示重复0次或多次
? 表示重复0次或1次
| 选择符号,表示“或关系”,例如:A | B 表示匹配A或B
{} 定义量词
[] 定义字符类
() 定义分组
^ 可以表示取反,或匹配一行的开始
$ 匹配一行的结束

上面表格中\w+ 是元字符,它由两个基本元字符(\+)和一个普通字符 w构成。另外,还有.元字符,它由两个基本元字符\,构成。
学习正则表达式某种意义上讲就是在学习元字符的使用,元字符是正则表达式的重点也是难点。下面会分门别类地介绍元字符的具体使用。

1.1.2 字符转义

在正则表达式中有时也需要字符转义,比如 w字符不表示英文字母 w,而是表示任何语言的单词字符(如英文字母、亚洲文字等)、数字和下画线等内容时,需要在w 字母前加上反斜杠\。反斜杠\也是基本元字符,与 Python 语言中的字符转义是类似的。不仅可以对普通字符进行转义,还可以对基本元字符进行转义。如上面的表格,其中点.字符是希望按照点.的字面意义使用,作为.com域名的一部分,而不是作为.基本元字符使用,所以需要加反斜杠\进行转义,即\.才是表示点.的字面意义。

1.1.3 开始与结束字符

本节通过一个示例介绍在 Python中如何使用正则表达式。
在1.1.1 节介绍基本元字符时介绍了^$,它们可以用于匹配一行字符串的开始和结束。当以^开始时,要求一行字符串的开始位置匹配:当以$结束时,要求一行字符串的结位置匹配。所以正则表达式\w+@jiakecong.com^w+@jiakecong.com$是不同的。
示例代码如下:

import re


p1 = r'\w+@jiakecong\.com'
p2 = r'^\w+@jiakecong\.com$'
text = "Tony 's email is tony_guan111@jiakecong.com"
m = re.search(p1, text)
print(m)

m = re.search(p2, text)
print(m)

email = "tony_guan111@jiakecong.com"
m = re.search(p2, email)
print(m)

https://www.cnblogs.com/jiakecong/p/15207207.html

posted @ 2021-08-31 18:51  Bonnie_ξ  阅读(78)  评论(0编辑  收藏  举报