1、基本正则表达式
正则表达式本身也是用字符串表示,通常在引号前加上r
。我们首先了解如何用字符来描述字符。\d
表示一个数字;
\w
表示一个数字、一个字母或者一个下划线;
\s
表示一个空格;
?
表示任意0个或者一个字符;
.
表示任意一个字符;
*
表示任意一个字符串,甚至可以是空字符串;
+
表示任意一个非空的字符串;
[]
表示一个集合。
2、[ ]集合的使用
[125]
表示1
或者2
或者5
;
[3-7]
表示3
到7
的一个数字,也就是3
、4
、5
、6
、7
;
[0-9+]
表示0
到9
的一个数字或者+
;
[a-z]
表示a
到z
的一个小写字母;
[a-zA-Z]
表示a
到z
的或者A
到Z
的一个大写字母;
[^xyz]
表示除了x
、y
、z
以外的任意一个字符;
[]{n}
表示一个长度为n的子字符串,每个字符都来自集合;
[]{n,m}
表示一个长度大于等于n小于等于m的子字符串,每个字符都来自集合。
3、re中的常见方法
3.1 re.search
re.search(pattern, string)
是搜索string
中符合pattern
的第一个字符串
3.2 re.match
match
必须从string
的第一个字符开始匹配,要求更严格。
3.3 re.findall
re.findall(pattern, string)
是从string
找到所有符合pattern
的子字符串,返回一个list,如果没有找到则返回一个空的list。
3.4 re.split
re.split(pattern, string)
是从string
找到所有符合pattern
的子字符串,并以这些子字符串为切割点,对原字符串进行分隔,返回得到一个list,每个元素是被分割的子字符串。
3.5 re.sub
re.sub(pattern, replace, string)是查找替换的功能,从string
找到所有符合pattern
的子字符串,并替换成replace
string = "克洛泽参加的4届世界杯中,他一共打入16球,其中2002世界杯5球,2006德国世界杯5球,2010南非世界杯4球,2014巴西世界杯2球。"
x = re.sub(r"2[0-9]{3}", "某某年", string)
print(x)
克洛泽参加的4届世界杯中,他一共打入16球,其中某某年世界杯5球,某某年德国世界杯5球,某某年南非世界杯4球,某某年巴西世界杯2球。
4. 练习:利用Python正则表达判断合法Email地址
pattern = r"[a-zA-Z0-9_+\.-]+@\w+\.\w+"
接下来就是email地址中的@符号,这个符号是必须且不可更改的,需要用转义字符’\’来表示,\@