正规表达式

 
通配符
.号,可以匹配任何字符串(除换行符外的任何单个字符)
 
对特殊字符进行转义
.号
'python\\.org'   
r'python\.org'
 
字符集
[a-zA-Z0-9]匹配单个字符
反转[^abc] 除a、b和c之外的字符
 
选择符和子模式
'python|perl'
子模式:'p(ython|erl)'
 
可选项和重复子模式 
子模式后面加上问号?
r'(http://)?(www\.)?python\.org'
?号重复一次或者不出现
重复:(pattern)*:重复0次或多次
       (pattern)+:重复1次或多次
       (pattern){m,n}:允许重复m~n次。
       
字符串的开始和结尾
^$
 
re模块的内容
主要函数
compile
search
match 从给定字符串的开头匹配
split
findall
sub 用指定字符替换模式 第一个参数repl可以是函数 
re.sub(pattern,r'<em>\1</em>','Hello,*world*!') 替换,子模式保持不变
escape 很实用,将字符串中含正则表达式的字符转义,即变为普通字符给正则表达式使用。
 
匹配对象和组
可以获得模式中子模式的信息。子模式,即括号内。
信息包括,字串,开始位置,结束位置,等
m=pat.match(line)
if m: print m.group(1)
 
贪婪和非贪婪模式
emphasis_pattern = r'\*\*(.+)\*\*'
emphasis_pattern = r'\*\*(.+?)\*\*'