码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-04-02 01:10:47      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:code   nbsp   dal   多行   不可用   正则表达式   size   常用   find   

一、单个匹配

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‘]

 

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

标签:code   nbsp   dal   多行   不可用   正则表达式   size   常用   find   

原文地址:https://www.cnblogs.com/caoyu080202201/p/12617019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!