python学习笔记3----正则表达式
正则表达式(RE)是通过re模块来实现的。
字符匹配:
--普通字符:
*大多数字母和字符一般都会和自身匹配。
--元字符:. ^ $ * + ? {} [] \ | ()
[]:
通常用来指定一个指标集。其中的任何一个都可以进行匹配。[0-9],[a-zA-Z0-9],[a-z]
元字符在字符集中不起作用。
补集匹配不在区间范围内的字符。
^:
通常用来指定行首。
$:
通常用来指定行尾。
\:
反斜杠取消后面的元字符的特殊意思。
反斜杠后面加上不同的字符表示不同特殊意义。
{m,n}:
把前面的规则重复的次数。最少的次数,重复的次数,重复m到n次。
* :
把前面的字符重复多次,包括0到多次。
+:
前面的字符最少出现一次。
?:
前面的字符出现0次或者一次。
可以用来实现最小匹配。
{0,}和*等同
{1,}和+等同
{0,1}和?等同
正则表达式的编译:
import re
p= re.compile(r"^ad");
p是一个正则表达式的对象
p.findall("absd")
常用方法:
match():如果在字符串开始位置找到就返回一个对象,没有找到就返回空。
search(): 扫描字符串,找到这个re匹配的位置。
把soucrString中的符合正则表达式的替换成newStr.,count是替换次数。
re.sub(re,"newStr",sourceString)
re.subn(re,"newStr",sourceString):最后一个值表示替换的次数。
用re来切割s:
re.split(re, s)
分组:
分组一般是用小括号括起来,如果正则表达式中包含分组,则会返回分组匹配的部分,而不是返回全部正则表达式匹配的字符。