一、什么是正则表达
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的 Email 地址,虽然可以编程提取 @ 前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
所以我们判断一个字符串是否是合法的 Email 的方法是:
1. 创建一个匹配 Email 的正则表达式;
2. 用该正则表达式去匹配用户的输入来判断是否合法。
因为正则表达式也是用字符串表示的,所以,我们要首先了解如何用字符来描述字符。
二、python中的正则表达--re模块
1、findall()方法
我们先来举个例子看看python为我们封装好的re模块
import re #导入我们的re模块(如果没有请用conda或者pip下载)
pattern = r'westos' #匹配的规则为 'westos'
s = 'westos hgkjtrgtrigjo westos' #这里是用规则去寻找的对象
print(re.findall(pattern, s)) #调用re.findall方法,其中传入两个参数:第一个为正则的方法,第二个为对象
分析:我们的规则就是去寻找符合‘westos’规则的内容,并且打印出来,在我们的对象中有两个是符合的,我们通过正则表达找到并且打印出来;
2、match()方法
match() 方法判断是否匹配,如果匹配成功,返回一个 Match 对象,否则返回 None 。
常见的判断方法就是:例如
上面的两个结果给我们看到了match的结果,当匹配的为合法对象时,则返回一个对象;若为不合法对象则返回一个空;
那么你可能要问了,这么简单的我凭着肉眼就能找到了,还需要这么麻烦码?
那么如果你要处理的文件有几个G的大小你还觉得简单的吗?如果是要是筛查变量是否合法,邮箱地址是否合法,用户名是否合法?那么你还觉得re模块简单吗?