欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

正则表达式 整理

程序员文章站 2022-06-12 18:26:03
re.findall 匹配到正则表达式的字符,匹配到的每个字符存入一个列表,返回一个匹配到的所有字符列表 一. 匹配单个字符 import re # \w 匹配所有字母、数字、下划线 re.findall('\w','abcd_123 *-') # 结果为:['a', 'b', 'c', 'd', ......
re.findall  匹配到正则表达式的字符,匹配到的每个字符存入一个列表,返回一个匹配到的所有字符列表
一. 匹配单个字符
import re
# \w 匹配所有字母、数字、下划线
re.findall('\w','abcd_123    *-')
# 结果为:['a', 'b', 'c', 'd', '_', '1', '2', '3']


# \s 匹配所有不可见字符
#  不可见字符有:\n \t 空格
re.findall('\s','abcd \n\tdf21  ')
# 结果为:[' ', '\n', '\t', ' ', ' ']


# \d 匹配所有数字
re.findall('\d','a1bc3 4d \n\tdf21  ')
# 结果为:['1', '3', '4', '2', '1']


# . 匹配\n换行符以外的所有可见和不可见字符
re.findall('.', 'c3 d\n\td1')
# 结果为:['c', '3', ' ', 'd', '\t', 'd', '1']

二. 匹配多个字符

#匹配多个字符:* + ? {}
import re
#  * 匹配0或n次
re.findall('\d*', '1a23')
# 结果为:['1', '', '23', '']


#  + 匹配1或n次
re.findall('\d+', '1a23')
# 结果为:['1', '23']
#前面2个是叫贪婪匹配


#  ? 匹配0或1次
re.findall('\d?', '1a3')
# 结果为:['1', '', '3', '']
# 这个叫非贪婪匹配

三. 匹配指定范围字符

# {m,n} 匹配最少m次,最多n次
# {m} 只匹配m次的
# {,n}  匹配最大n次,最小次数不限
# {m,}  匹配最小m次,最大次数不限
re.findall('\d{2,4}', '1a33g134nn12345')
# 结果为:['33', '134', '1234']
re.findall('a{3}', '1aaa3*g+1aaaan#b')
# 结果为:['aaa', 'aaa']


# | 匹配 或 语法的字符
re.findall('1|23|4', '1a33g134nn12345')
# 结果为:['1', '1', '4', '1', '23', '4']


# [ ] 匹配括号内的字符(只匹配单个)
re.findall('[123]', '1a33g134nn12345')
# 结果为:['1', '3', '3', '1', '3', '1', '2', '3']
re.findall('[0-9a-za-z]', '1a3*g+1n#')
# 匹配0到9或者a到z或者a到z单个字符
# 结果为:['1', 'a', '3', 'g', '1', 'n']


# ^x 行首匹配
# x$ 行尾匹配
re.findall('^1', '1a3*g+1n#b')
re.findall('1$', '1a3*g+1n#b')
# 结果为:['1']     
# 结果为:['b']

 

 

 

未完待续...