re模块(01)

Posted 20181013python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了re模块(01)相关的知识,希望对你有一定的参考价值。

# 计算器
# re模块
# 正则表达式 —— 字符串匹配的
# 学习正则表达式
# 学习使用re模块来操作正则表达式
while True:
    phone_number = input(please input your phone number : )
    if len(phone_number) == 11             and phone_number.isdigit()            and (phone_number.startswith(13)             or phone_number.startswith(14)             or phone_number.startswith(15)             or phone_number.startswith(18)):
        print(是合法的手机号码)
    else:
        print(不是合法的手机号码)


import re
phone_number = input(please input your phone number : )
if re.match(^(13|14|15|18)[0-9]{9}$,phone_number):
        print(是合法的手机号码)
else:
        print(不是合法的手机号码)


# 绿茶 白茶 黄茶 青茶(乌龙茶) 红茶 黑茶
# 发酵程度和制作工艺
# print(r‘\n‘)
# print(r‘
‘)

import re
# findall
# search
# match

ret = re.findall([a-z]+, eva egon yuan)
    # 返回所有满足匹配条件的结果,放在列表里
print(ret)

ret = re.search(a, eva egon yuan)
if ret:
     print(ret.group())
# 从前往后,找到一个就返回,返回的变量需要调用group才能拿到结果
# 如果没有找到,那么返回None,调用group会报错

ret = re.match([a-z]+, eva egon yuan)
if ret:
    print(ret.group())
# match是从头开始匹配,如果正则规则从头开始可以匹配上,就返回一个变量。
# 匹配的内容需要用group才能显示
# 如果没匹配上,就返回None,调用group会报错

ret = re.split([ab], abcd)
# 先按‘a‘分割得到‘‘和‘bcd‘,在对‘‘和‘bcd‘分别按‘b‘分割
print(ret)  # [‘‘, ‘‘, ‘cd‘]

ret = re.sub(d, H, eva3egon4yuan4,1)
#将数字替换成‘H‘,参数1表示只替换1个
print(ret) #evaHegon4yuan4

ret = re.subn(d, H, eva3egon4yuan4)
#将数字替换成‘H‘,返回元组(替换的结果,替换了多少次)
print(ret)

obj = re.compile(d{3})
#将正则表达式编译成为一个 正则表达式对象,规则要匹配的是3个数字
ret = obj.search(abc123eeee) #正则表达式对象调用search,参数为待匹配的字符串
print(ret.group())
ret = obj.search(abcashgjgsdghkash456eeee3wr2) #正则表达式对象调用search,参数为待匹配的字符串
print(ret.group())  #结果 : 123

import re
ret = re.finditer(d, ds3sy4784a)   #finditer返回一个存放匹配结果的迭代器
print(ret)  # <callable_iterator object at 0x10195f940>
# print(next(ret).group())  #查看第一个结果
# print(next(ret).group())  #查看第二个结果
# print([i.group() for i in ret])  #查看剩余的左右结果
for i in ret:
    print(i.group())


import re
ret = re.search(^[1-9](d{14})(d{2}[0-9x])?$,110105199912122277)
print(ret.group())
print(ret.group(1))
print(ret.group(2))

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.split("d+","eva3egon4yuan")
print(ret) #结果 : [‘eva‘, ‘egon‘, ‘yuan‘]

ret=re.split("(d+)","eva3egon4yuan")
print(ret) #结果 : [‘eva‘, ‘3‘, ‘egon‘, ‘4‘, ‘yuan‘]

 

以上是关于re模块(01)的主要内容,如果未能解决你的问题,请参考以下文章

Node.js JavaScript 片段中的跳过代码

re模块(01)

爬虫学习 ----- 第二章 爬取静态网站 ---------- 01 . re 模块学习 ---- python的re库

python 正则表达式 re模块基础

如何将字符串数据从活动发送到片段?

python系列——正则表达式之re模块01