python学习day18 re模块

# 递归
# 超过最大递归深度
# 要写递归函数,必须有结束条件

# 返回值
# 不要看到return就以为返回了,要看返回的操作到第几层是发生,并返回给了谁。
# 如果不是返回给最外层函数,调用者就接收不到
# 需要再分析,看如何把结果返回

# 作业
# 斐波那契数列
# 1,1,2,3,5,8
# def fib(n):
#     if n ==1 or n == 2:
#         return 1
#     return fib(n-1) + fib(n-2)
# print(fib(50))

# fib(6)=fib(5)+fib(4)
# fib(5)=fib(4)+fib(3)
# fib(4)=fib(3)+fib(2)
# fib(2)=1
# fib(1)=1
# 斐波那契数列优化
# def fib(n,a=1,b=1):
#     if n == 1:
#         return a
#     return fib(n-1,b,a+b)
# print(fib(6))

# 阶乘
# def fac(n):
#     if n == 1:
#         return 1
#     return n * fac(n - 1)
# print(fac(100))

# re正则模块
import 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('不是合法的手机号码')

# 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')
# print(ret)
#先按‘a’分割得到‘’和‘bcd’
#再按‘b'分割,得到'','','cd'

# ret = re.sub('\d','H','sadf554',1)
# print(ret)
#将数字替换成指定的字符,并可指定替换次数

# ret = re.subn('\d','H','sadf554',1)
# print(ret)
#将数字替换成指定的字符,并可指定替换次数
#返回元组包含替换结果和替换次数

# obj = re.compile('\d{3}')
#将正则表达式编译成一个对象
# ret = obj.search('abc123eee')#对象调用search,参数为待匹配字符串
# print(ret.group())
# ret = obj.search('aaghuhdsijlgnasliugh;s1532bc123eee')
# print(ret.group())

# ret = re.finditer('\d','asfasf41fasf5asf5')#返回一个迭代器
# print(ret)
# print(next(ret).group())#调用结果
# print(next(ret).group())#调用结果
# print(next(ret).group())#调用结果
# print(next(ret).group())#调用结果

# 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+','fweff75wef4wef4we2fwefew')
# print(ret)#['fweff', '', 'wef', 'wef', 'we', 'fwefew']

# ret = re.split('(\d+)','fweff75wef4wef4we2fwefew')
# print(ret)#['fweff', '75', 'wef', '4', 'wef', '4', 'we', '2', 'fwefew']
#安组分,分割元素还在

猜你喜欢

转载自www.cnblogs.com/wujunjie-sir/p/9221506.html