模块与包

正则模块

import re
print(re.findall('\w','as213df_*|'))
print(re.findall('\W','as213df_*|'))

print(re.findall('a\wb','a_b a3b aEb a*b'))

print(re.findall('\s','a b\nc\td'))
print(re.findall('\S','a b\nc\td'))

print(re.findall('\d','a123bcdef'))
print(re.findall('\D','a123bcdef'))


print(re.findall('\n','a123\nbcdef'))
print(re.findall('\t','a123\tbc\td\tef'))

print(re.findall('^h','hello egon hao123'))
print(re.findall('^h','ello egon hao123'))

print(re.findall('3$','e3ll3o e3gon hao123'))
print(re.findall('3$','e3ll3o e3gon hao123asdf'))

print(re.findall('a.c','abc a1c a*c a|c abd aed ac'))

 

print(re.findall('a.c','abc a1c a*c a|c abd aed a\nc',re.S)) #让点能够匹配到换行符
print(re.findall('a[1,2\n]c','a2c a,c abc a1c a*c a|c abd aed a\nc'))
print(re.findall('a[0-9]c','a2c a,c abc a1c a*c a|c abd aed a\nc'))
print(re.findall('a[0-9a-zA-Z*-]c','a1c abc a*c a-c aEc'))


print(re.findall('a[^0-9]c','a1c abc a*c a-c aEc'))

 

* + ? {n,m} #重复

ab* a ab abbbbbbbbbbbbbbbbbbbbbbbbbbb
print(re.findall('ab*','a'))
print(re.findall('ab*','abbbbbb'))
print(re.findall('ab*','bbbbbb'))


print(re.findall('ab+','a'))
print(re.findall('ab+','abbbbbb'))
print(re.findall('ab+','bbbbbb'))


ab[123] ab1 ab2 ab3
print(re.findall('ab[123]','abbbbb123'))
print(re.findall('ab[123]','ab1 ab2 ab3 abc1'))

ab[123] ab1+ ab2+ ab3+
print(re.findall('ab[123]+','ab11111111 ab2 ab3 abc1'))

ab[123] ab[123][123][123]
print(re.findall('ab[123]+','ab1 ab2 ab3 ab4 ab122'))

abbb
print(re.findall('ab{3}','ab1 abbbbbbbb2 abbbbb3 ab4 ab122'))
print(re.findall('ab{3,4}','ab1 abbb123 abbbb123 abbbbbt'))

print(re.findall('ab{3,}','ab1 abbb123 abbbb123 abbbbbt'))
print(re.findall('ab{0,}','a123123123 ab1 abbb123 abbbb123 abbbbbt'))
print(re.findall('ab{1,}','a123123123 ab1 abbb123 abbbb123 abbbbbt'))


ac abc
print(re.findall('ab?c','ac abc aec a1c'))


.* 贪婪匹配
print(re.findall('a.*c','ac abc aec a1c'))

.*? 非贪婪匹配
print(re.findall('a.*?c','ac abc aec a1c'))
print(re.findall('a.*?c','ac abc a111111111c a\nc a1c',re.S))

 

print(re.findall('compan(?:y|ies)',
'Too many companies have gone bankrupt, and the next one is my company'))


print(re.findall('ab+123','ababab123'))
print(re.findall('(?:ab)+123','ababab123'))


print(re.findall(r'a\\c','a\c')) #r代表告诉解释器使用rawstring,即原生字符串,把我们正则内的所有符号都当普通字符处理,不要转义
# print(re.findall('a\\\\c','a\c')) #r代表告诉解释器使用rawstring,即原生字符串,把我们正则内的所有符号都当普通字符处理,不要转义

# print(re.findall(r'a\\c','a\c')) #r代表告诉解释器使用rawstring,即原生字符串,把我们正则内的所有符号都当普通字符处理,不要转义
# print(re.findall('a\\\\c','a\c')) #同上面的意思一样,和上面的结果一样都是['a\\c']

posted @ 2017-06-03 10:52  geek_ace  阅读(156)  评论(0编辑  收藏  举报