day22 Pyhton学习 re模块和正则表达式

正则表达式本身也和python没有什么关系,就是匹配字符串内容的一种规则。
官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

 

# re.findall('正则表达式','带匹配的字符')

# ret = re.findall('\d+','alex83wusir38')
# print(ret)#['83', '38']
# ret = re.findall('\d','alex83wusir38')
# print(ret)#['8', '3', '3', '8']

# ret = re.search('\d','alex83wusir38')
# print(ret)  # 返回的匹配结果,而不是具体的值
# print(ret.group()) # 从左到右找到第一个匹配的就返回
# ret = re.search('\d+','alex83wusir')
# print(ret)  # 返回的匹配结果,而不是具体的值
# if ret:
#     print(ret.group())

ret = re.match('\d+','alex222wusir38')
print(ret)#None
# print(ret.group())

ret = re.search('^\d+','83alex222wusir38')
print(ret)#<re.Match object; span=(0, 2), match='83'>
print(ret.group())#83

#            参数           返回值
# findall 正则 待匹配字符串  列表,所有符合的项
# search                    变量,.group取结果,只有一项结果
# match                     变量,.group取结果,默认在正则之前加上^

# 正则表达

 

import re

ret = re.findall('www.(baidu|oldboy).com', 'www.oldboy.com')
print(ret)  # ['oldboy']     这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可

ret = re.findall('www.(?:baidu|oldboy).com', 'www.oldboy.com')
print(ret)  # ['www.oldboy.com']
# ret = re.search('(www)\.(baidu|google)\.(com)','www.baidu.com,www.google.com')
# print(ret)
# print(ret.group())
# print(ret.group(0))
# print(ret.group(1))
# print(ret.group(2))
# print(ret.group(3))

 

posted @ 2018-11-14 15:39  Python张梦书  阅读(184)  评论(0编辑  收藏  举报