1>概念:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式就是记录文本规则的代码。
所以正则表达式并不是python中特有的功能,它是一种通用的方法。python中的正则表达式库,所做的事情是利用正则表达式来搜索文本。要使用它,你必须会自己用正则表达式来描述文本规则
4>字符匹配(普通字符,元字符):
普通字符:大多数数字和字母的任意集合
元字符:在正则表达式中具有特殊意义的专用字符
5>元字符
. :匹配除换行符以外的任意字符
^ :匹配字符串的开始(从字符串开头开始匹配)…………放到集合中的时候表示“非”
$ : 匹配字符串的结尾(从字符串的结尾开始匹配)
* : 匹配前面的子表达式零次或多次…………po*等价于子表达式可能是p、po、poo、pooo.......
+ :匹配前面的子表达式一次或多次…………po+等价于子表达式可能是po、poo、pooo.......
? :匹配前面的子表达式零次或一次…………po?等价于子表达式可能是p、po
| :将俩个匹配条件进行逻辑“或”运算
:反斜杠后面跟元字符去除其特殊功能
反斜杠后面跟普通字符实现特殊功能
引用序号所对应的字组所匹配的字符串…………re.search(r"(alex)(eric)com2","alexericcomeric")
d :匹配任意一个数字字符…………相当于[0-9]
D :匹配任意一个非数字字符………相当于[^0-9]
s :匹配任意一个不可见字符,包括空格、制表符、换页符等等…………等价于[ fv]
S :匹配任意一个可见字符…………等价于[^ fv]
w :匹配任意一个字母或数字或下划线或汉字…………等价于[a-zA-Z0-9_]
W :匹配任意一个非字母或数字或下划线或汉字…………等价于[^a-zA-Z0-9_]
:匹配一个单词边界,也就是指单词和空格间的位置。
:匹配一个换行符
f :匹配一个换页符
:匹配一个回车符
[a-z] :匹配括号中所包含的任意一个字符………-表示范围
[^a-z] :匹配任何不在指定范围内的字符…………其中^表示非得意思
[] :表示一个字符集,特殊字符在字符集中会失去其特殊意义(“^” 在字符集中是非得意思 “-”在字符集中是至的意思 “d” "w"等等还保留其原有意义)
{n} :n是一个非负整数 ,匹配整数n次
{n,} :n是一个非负整数,至少匹配n次
{n,m} :m,n均为非负整数,m>n,最少匹配n次,最多匹配m次
() :表示分组,利用findall匹配时,只输出的组里面的内容,并组成一个新组放到列表中
利用search和match匹配时,输出全部内容,可以用group方法取出来各个组的内容
1,字符组:[字符组]
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示;
字符分为很多类,比如数字、字母、标点等等;
假如你现在要求一个位置“只能出现一个数字”,那么这个位置上的字符只能是0,1,2 . . . 9这10个数之一。