正则表达式简单总结
1 几种简单的正则:
. 匹配任意字符(换行符除外)
* 匹配前一个字符0次或者无限次
?匹配前一个字符0次或1次
.*贪婪算法
.*?非贪婪算法
() 将括号的内容返回
2. 重用方法:
findall 匹配所有满足规律的内容,并返回一个列表
seach 匹配并提取第一个符合规律的内容并返回一个正则表达式的对象
sub 替换符合规律的内容,并返回替换后的值
简单的练习代码:
1 import re
2 # .
3 string = 'aawaafgfdaashiaavcvcvaatianaavcvcvcaacaiaacxcx'
4 a='xy123'
5 b=re.findall('x.',a)
6 print b
7
8 # *
9 a='xyxy123'
10 b=re.findall('x*',a)
11 print b
12
13 #..............
14
15 res=re.findall('aa(.*?)aa',string)
16 for i in res:
17 print i
2 # .
3 string = 'aawaafgfdaashiaavcvcvaatianaavcvcvcaacaiaacxcx'
4 a='xy123'
5 b=re.findall('x.',a)
6 print b
7
8 # *
9 a='xyxy123'
10 b=re.findall('x*',a)
11 print b
12
13 #..............
14
15 res=re.findall('aa(.*?)aa',string)
16 for i in res:
17 print i
3. re.S
默认情况下模式串是包含换行符的,要想去掉换行符可以采用re.S
使用以下代码作比较
string = """aaw
aafgfdaashiaavcvcvaatianaavcvcvcaacaiaacxcx"""
res=re.findall('aa(.*?)aa',string)
for i in res:
print i
res=re.findall('aa(.*?)aa',string,re.S)
for i in res:
aafgfdaashiaavcvcvaatianaavcvcvcaacaiaacxcx"""
res=re.findall('aa(.*?)aa',string)
for i in res:
print i
res=re.findall('aa(.*?)aa',string,re.S)
for i in res:
print i