正则表达式
就本质而言,正则表达式(或re)是一种小型的,高度专业化的编程语言。在Python中它内嵌在Python程序中,并通过re模块实现。正则表达式模式背标一成衣系列的字节码,然后由用c编写的匹配引擎执行。主要用于实现模糊化匹配。
正则表达式中的字符分为两种,一种是普通字符(即包含所有字母数字等),第二种是元字符(. ^ $ * + ? {} [] | () \)。
元字符 .
.为通配符,可以匹配除了\n之外的所有字符
import re
print(re.findall("a..x","abcalcxdd"))
元字符^
^表示是否以它之后的字符开头,它也必须放在开头
import re
print(re.findall("^a..a","abcalcxdd"))
元字符$
$表示是否以它之后的字符结尾,它也必须放在结尾
import re
print(re.findall("c..d$","abcalcxdd"))
元字符*
表示紧挨着的字符的重复,因为可以匹配0到无穷次即被匹配对象可以一次都不出现,所以通常和^或者$一起使用
import re
print(re.findall("^d*","dddabcalcxddddd"))
元字符+
+表示重复,但被匹配字符必须得出现一次,默认为贪婪匹配。
import re
print(re.findall("alex+","alexxxxxxads"))
元字符?
?会将匹配变为惰性匹配
import re
print(re.findall("alex+?","alexxxxxxads"))
import re
print(re.findall("alex?","aledsaads"))
元字符{}
{}代表重复任意次
import re
print(re.findall("alex{6}","alexxxxxxxxxdsaads"))