re正则表达式

正则表达式通常用于匹配,替换,分割字符串 ,re是python中用于处理正则表达式的一个内置库。

一、正则表达式

# 元字符
"""
. 表示任意一个字符串,除了\n  re.S
^ 以什么开头  re.M
$ 结尾   re.M

贪婪:尽可能匹配多个
* 代表有>=0个 会匹配一个空
+ 代表有>=1个
? 代表有0个或者1个

非贪婪 尽可能的匹配少个数
在贪婪模式后方追加一个?

"""
result = re.findall(r"\d*", "12345d6789")
print(result)

result = re.findall(r"\d*?", "123456789")
print(result)
result = re.findall(r"\d+?", "123456789")
print(result)
result = re.findall(r"\d??", "123456789")
print(result)


#
# # . 表示任意一个字符串,除了\n(换行) , 使用参数re.S可以匹配\n
# print(re.match(".", "serf"))
# print(re.match('.', '\n'))
# print(re.match('.', '''
# '''))
#
# # 大写与小写字母匹配的字符相反
# # \d 表示0-9之间任意一个数字,
# # \D 表示除0-9之外任意一个字符,
# # \s 匹配空白字符(空格、所有格式符)
# # \S 匹配非空白字符
# # \w 大小写字母,数字,下划线
# # \W
#
#
# # 字符集,使用中括号代表匹配范围
# # match匹配字符串中第一个字符
# print(re.match('[abcd]', 'ab'))  # 匹配a
# print(re.findall('[abcd]', 'ab'))  # ['a', 'b']
# # [a-z]匹配从a到z
# print(re.findall('[a-z]', 'ab'))  # ['a', 'b']
# # 取反 ^ ,不是a-z的返回
# print(re.findall('[^a-z]', '12'))  # ['1', '2']
# # 字母大小写都匹配
# print(re.match('[a-zA-Z]', 'ab'))  # 匹配a
#
# # match匹配多个字符
# print(re.match('[0-9][0-9]', '55'))  # 匹配55
# print(re.match('\w\w', '5_'))  # 匹配5_
# print(re.match('[\w\W]','我'))  # 匹配所有字符

二、re模块的使用

re的方法返回的match对象是匹配结果,包含start,end,group方法,用于对结果的操作。

import re
string = "abcd"
pattern = "ab"
# 匹配成功,它会返回一个匹配对象;如果失败,则返回 None。
# pattern 模版,样式  match 匹配
# match匹配字符串第一个
res = re.match(pattern, string)
print(res)

print(res.group())
# findall 字符串的字符挨个匹配
print(re.findall(pattern, string))
# complie(patton, flags) 用于一个正则表达式被多次调用

# flags = re.I   不区分大小写


# re.match().start()
# re.match().end()
# re.match().span()  以元组返回开始和结尾
# re.match().string()  全部

# re.search()  # 匹配第一次出现的位置
# re.findall()
# re.split()  默认组前后会有空格,可以自己指定
# re.sub(m,n,string) 切换, 将string中的m,切换为n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值