常用模块之正则表达式模块

Posted caoyu080202201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用模块之正则表达式模块相关的知识,希望对你有一定的参考价值。

一、单个匹配

import re
print(re.findall(w, aAbc123_*()-=))  # 规则为 “数字或字母或下划线” 结果为 [‘a‘, ‘A‘, ‘b‘, ‘c‘, ‘1‘, ‘2‘, ‘3‘, ‘_‘]
print(re.findall(W, aAbc123_*()-= ))  # 规则为 “非数字且非字母且非下划线” 结果为 [‘*‘, ‘(‘, ‘)‘, ‘-‘, ‘=‘, ‘ ‘]
print(re.findall(s, aA
bc	
12f3_*()-= ))  # 规则为 “空格类型” 结果为 [‘
‘, ‘	‘, ‘
‘, ‘x0c‘, ‘ ‘, ‘ ‘]
print(re.findall(S, aA
bc	
12f3_*()-= ))  # 规则为 “非空格类型”  结果为 [‘a‘, ‘A‘, ‘b‘, ‘c‘, ‘1‘, ‘2‘, ‘3‘, ‘_‘, ‘*‘, ‘(‘, ‘)‘, ‘-‘, ‘=‘]
print(re.findall(d, aA
bc	
12f3_*()-= ))  # 规则为 “数字” 结果为 [‘1‘, ‘2‘, ‘3‘]
print(re.findall(D, aA
bc	
12f3_*()-= ))  # 规则为 “非数字” 结果为 [‘a‘, ‘A‘, ‘
‘, ‘b‘, ‘c‘, ‘	‘, ‘
‘, ‘x0c‘, ‘_‘, ‘*‘, ‘(‘, ‘)‘, ‘-‘, ‘=‘, ‘ ‘]
print(re.findall(Aalex,alexis alex sb))  # 规则为 首字符为 ‘alex‘ 结果为 [‘alex‘]
print(re.findall(sb, 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
b a	b a*b))
# 规则为 . 可以是任意除了 
 的字符,结果为 [‘a1b‘, ‘a2b‘, ‘a b‘, ‘abb‘, ‘a	b‘, ‘a*b‘]
print(re.findall(a.b, a1b a2b a b abbbb a
b a	b a*b, re.DOTALL))
# 规则为 可以用 re.DOTALL 声明 . 也可以代表
 结果为 [‘a1b‘, ‘a2b‘, ‘a b‘, ‘abb‘, ‘a
b‘, ‘a	b‘, ‘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
b, 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
b, re.DOTALL))
# 规则为 a与b之前的字符在[]范围外,结果为 [‘a b‘, ‘a
b‘]

 

以上是关于常用模块之正则表达式模块的主要内容,如果未能解决你的问题,请参考以下文章

python--常用模块之正则

python之常用模块和正则表达式

python常用模块之——正则re模块

常用模块之正则表达式模块

Python之常用模块学习

Python之常用模块re模块与logging模块和包