import re
# 重复匹配:| . | * | ? | .* | .*? | + | {n,m} |# .:匹配出了\n之外任意一个字符,指定re.DOTALL之后才能匹配换行符print(re.findall('a.b','a1b a2b a b abbbb a\nb a\tb a*b'))# ['a1b', 'a2b', 'a b', 'abb', 'a\tb', 'a*b']print(re.findall('a.b','a1b a2b a b abbbb a\nb a\tb a*b', re.DOTALL))print(re.findall('a.b','a1b a2b a b abbbb a\nb a\tb a*b', re.S))# ['a1b', 'a2b', 'a b', 'abb', 'a\nb', 'a\tb', 'a*b']print(re.findall('a..b','a1b a2b a b abbbb a\nb a\tb a*b', re.DOTALL))# ['abbb']
import re
# *:左侧字符重复0次或无穷次print(re.findall('ab*','a ab abb abbbbb bbbbb'))# ['a', 'ab', 'abb', 'abbbbb']# +:左侧字符重复1次或无穷次print(re.findall('ab+','a ab abb abbbbb bbbbb'))# ['ab', 'abb', 'abbbbb']# ?:?左侧字符重复0次或者1次print(re.findall('ab?','a ab abb abbbbb bbbbb'))# ['a', 'ab', 'ab', 'ab']# {n,m}:左侧字符重复n次到m次,单独一个n代表只出现n次print(re.findall('ab{2,5}','a ab abb abbb abbbb abbbbbbbb bbbbb'))# ['abb', 'abbb', 'abbbb', 'abbbbb']
import re
# 联系题:把整形和浮点型取出来print(re.findall('\d+\.?\d*',"asdfasdf123as1.13dfa12adsf1asdf3"))# ['123', '1.13', '12', '1', '3']
import re
# []:匹配指定字符一个print(re.findall('a[0-5]b','a1b a3b aXb a b a\nb'))# ['a1b', 'a3b']print(re.findall('a[012345]b','a1b a3b aXb a b a\nb'))# ['a1b', 'a3b']print(re.findall('a[052314]b','a1b a3b aXb a b a\nb'))# ['a1b', 'a3b']print(re.findall('a[0-5a-zA-Z]b','a1b a3b aXb a b a\nb'))# ['a1b', 'a3b', 'aXb']print(re.findall('a[^0-5a-zA-Z]b','a1b a3b aXb a b a\nb'))# ['a b', 'a\nb'] ^取反的意思