正则表达式是各种字符串操作的强大的工具。
正则表达式是一种特定于领域的语言,(DSL),作为大多数现代编程语言的库,而不仅仅是python。
正则表达式对于以下两种主要任务是很有用的:
验证字符串是否符合匹配模式,(例如:字符串具有电子邮件地址的格式)
对字符串中进行替换(如将所有美式拼写改为英式拼写)
正则表达式是一个高度专业化的迷你编程语言,与sql类似适用于多种编程环境。
python中的 正则表达式可以使用re模块来访问,他是标准库的一部分。
re模块中有3个比较重要的方法:
re.match() :用来确定字符串开头是否符合我们设定的规则,如果匹配上,返回匹配的对象,否则返回none。
例子:
import re
patter='spam'
if re.match(pattern,'spamapamspam'):
print("match")
else:
print("no match")
re.search() : 是否可以在字符串中查找到符合条件的,查找到返回可迭代对象,否则返回none
可以查看出里面的包含匹配到的信息 ,接下来将提取我们需要的信息(开始位置和结束位置)
注意他只会返回第一个查询到的对象的信息,如果有多个也只返回第一的信息。
re.findall(): 将字符中所有符合条件的,以列表形式返回 (一个结果也是列表注意),否则返回 none
re.sub (pateern,repl ,string,max=0 )
此方法替换字符串中所有满足条件的字符,除非max限制数量,结果返回替换的结果
元字符
元字符使用正则表达式比普通的字符串方法更强大。
元字符允许你在创建正则表达式来表示像‘一个或多个元音的重复’这样的概念。
元字符 .
他可以匹配任何单个的字符,但不匹配新的行 换行符 等特殊字符。
元字符 ^ 和 $
分别匹配字符串的额开始和结束
字符类 [ ]
把总括号里面的任何一个当做匹配的条件(含有列表中的字符的)。
一些常用的组合:
[a-z] 匹配任何小写字符 [A-Z] 匹配任何大写字符
[0-9] 匹配任何数字 [a-zA-Z] 匹配任何大小写字符
使用 ^ 来反转其中的含义 ,不含有列表中的元素 --------只有与[ ]配合才有这种效果,其他时候都是代表字符串开头的意思
元字符:
* : 零次或多次
+ :一次或多次
?:零次或多次
{3,5}: 3次到5次 如果3的位置缺失,自动补0
元字符:
| :或者 通常与();一起使用
例子:‘a(1|2|3)b’ 可以匹配 a1b a2b a3b
特殊序列:
\d : 匹配数字 \w 所有的字符 \s 空格
\D 非数字 \W 非字符 \S非空格