re 模块

re 模块即正则表达式

import re

print(re.findall('123', 'aAbBcC123_%$#-*/123'))  # 匹配一样的
# ['123', '123']
print(re.findall('\w', 'aAbBcC123_%$#-*/'))  # 只取字母、数字、下划线
# ['a', 'A', 'b', 'B', 'c', 'C', '1', '2', '3', '_']
print(re.findall('\W', 'aAbBcC123_%$#-*/'))  # 不取字母、数字、下划线
# ['%', '$', '#', '-', '*', '/']
print(re.findall('\s', 'aA\rbB\tcC\n123\f_%$  #-*/'))  # 取空字符
# ['\r', '\t', '\n', '\x0c', ' ', ' ']
print(re.findall('\S', 'aA\rbB\tcC\n123\f_%$  #-*/'))  # 不取空字符
# ['a', 'A', 'b', 'B', 'c', 'C', '1', '2', '3', '_', '%', '$', '#', '-', '*', '/']
print(re.findall('\d', 'aA\rbB\tcC\n123\f_%$  #-*/'))  # 匹配数字
# ['1', '2', '3']
print(re.findall('\D', 'aA\rbB\tcC\n123\f_%$  #-*/'))  # 匹配非数字
# ['a', 'A', '\r', 'b', 'B', '\t', 'c', 'C', '\n', '\x0c', '_', '%', '$', ' ', ' ', '#', '-', '*', '/']
print(re.findall('\Axio', 'xio is xio666'))  # 只匹配开头的
print(re.findall('^xio', 'xio is xio666'))  # 只匹配开头的
# ['xio']
print(re.findall('yyy\Z', 'xio is xio666 yyy'))  # 只匹配结尾的,但字符串不能换行
print(re.findall('yyy$', 'xio is xio666 yyy'))  # 只匹配结尾的
# ['yyy']
print(re.findall('^xio$', 'xio'))
# ['xio']
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'] ^取反的意思
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值