一、单个匹配

import re
print(re.findall('\w', 'aAbc123_*()-='))  # 规则为 “数字或字母或下划线” 结果为 ['a', 'A', 'b', 'c', '1', '2', '3', '_']
print(re.findall('\W', 'aAbc123_*()-= '))  # 规则为 “非数字且非字母且非下划线” 结果为 ['*', '(', ')', '-', '=', ' ']
print(re.findall('\s', 'aA\rbc\t\n12\f3_*()-= '))  # 规则为 “空格类型” 结果为 ['\r', '\t', '\n', '\x0c', ' ', ' ']
print(re.findall('\S', 'aA\rbc\t\n12\f3_*()-= '))  # 规则为 “非空格类型”  结果为 ['a', 'A', 'b', 'c', '1', '2', '3', '_', '*', '(', ')', '-', '=']
print(re.findall('\d', 'aA\rbc\t\n12\f3_*()-= '))  # 规则为 “数字” 结果为 ['1', '2', '3']
print(re.findall('\D', 'aA\rbc\t\n12\f3_*()-= '))  # 规则为 “非数字” 结果为 ['a', 'A', '\r', 'b', 'c', '\t', '\n', '\x0c', '_', '*', '(', ')', '-', '=', ' ']
print(re.findall('\Aalex','alexis alex sb'))  # 规则为 首字符为 'alex' 结果为 ['alex']
print(re.findall('sb\Z',' alexis alexsb sb'))  # 规则为 尾字符为 'sb' 结果为 ['sb'],不可用于多行字符串
print(re.findall('^alex','alexis alex sb'))  # 规则为 首字符为 'alex' 结果为 ['alex']
print(re.findall('sb$','alexis alex sb'))  # 规则为 尾字符为 'sb' 结果为 ['sb']
print(re.findall('sb$',"""
alex
sb
"""))  # 规则为 尾字符为 'sb' 结果为 ['sb'],可用于多行字符串

二、重复匹配

import re
print(re.findall('a.b', 'a1b a2b a b abbbb a\nb a\tb a*b'))
# 规则为 . 可以是任意除了 \n 的字符,结果为 ['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))
# 规则为 可以用 re.DOTALL 声明 . 也可以代表\n 结果为 ['a1b', 'a2b', 'a b', 'abb', 'a\nb', 'a\tb', 'a*b']
print(re.findall('ab*', 'a ab abb abbbbbbbb bbbbbbbb'))
# 规则为 * 前面的字符为 0到无穷多个,结果为 ['a', 'ab', 'abb', 'abbbbbbbb']
print(re.findall('ab+', 'a ab abb abbbbbbbb bbbbbbbb')) 
# 规则为 + 前面的字符为 1到无穷多个,结果为 ['ab', 'abb', 'abbbbbbbb']
print(re.findall('ab?', 'a ab abb abbbbbbbb bbbbbbbb'))
# 规则为 ?前面的字符为 0个或者1个,结果为 ['a', 'ab', 'ab', 'ab']
print(re.findall('ab{2,5}', 'a ab abb abbb abbbb abbbbbbbb bbbbbbbb'))
# 规则为 {2,5}前面的字符为2到5个,结果为 ['abb', 'abbb', 'abbbb', 'abbbbb']
print(re.findall('a[0-9a-zA-Z]b', 'a1111111b axb a3b a1b a0b a4b a9b aXb a b a\nb', re.DOTALL))
# 规则为 a与b之前的字符在[]范围内,结果为 ['axb', 'a3b', 'a1b', 'a0b', 'a4b', 'a9b', 'aXb']
print(re.findall('a[^0-9a-zA-Z]b', 'a1111111b axb a3b a1b a0b a4b a9b aXb a b a\nb', re.DOTALL))
# 规则为 a与b之前的字符在[]范围外,结果为 ['a b', 'a\nb']

 

posted on 2020-02-01 14:01  焚音留香  阅读(117)  评论(0编辑  收藏  举报