栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python正则表达式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python正则表达式

题目
  1. 编写代码,根据完整路径从路径中分离文件路径(只需要分离出一个路径整体即可),文件名及文件扩展名。 str1 = "D: 软件 python python39 Tools scripts abitype.py"

  2. 编写函数hanzi_count(str)统计任意字符串中汉字的个数。

  3. 编写函数trans(str)实现字符串中数字转化为大写汉字。例如 "0123456789"转化为 "零壹贰叁肆伍陆柒捌玖"。

  4. 编写程序,校验键盘录入的电子邮箱是否合法,并测试。

  5. 已知有字符串"张三 张四 王小玲 1320888XX23 4XX9599 XXXtom@126.com 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》", 设计正则表达式,并编写代码完成以下功能:

  • 提取其中邮箱账号
  • 提取手机号码
  • 提取小说名称
  • 提取日期
代码

1.编写代码,根据完整路径从路径中分离文件路径(只需要分离出一个路径整体即可),文件名及文件扩展名。 str1 = "D: 软件 python python39 Tools scripts abitype.py"

思路:os.path模块或split()方法,我这里只写了os.path

import os
def file(path):
    filepath,filename=os.path.split(path)
    filename1,extension=os.path.splitext(filename)
    print("您输入的完整文件路径为:{0}n文件路径: {1}n文件名为: {2}n
扩展名为: {3}".format(path,filepath,filename,extension))

str1 = "D:\软件\python\python39\Tools\scripts\abitype.py"
file(str1)

运行结果:

 

2.编写函数hanzi_count(str)统计任意字符串中汉字的个数。

思路:首先导入re模块,然后指定书上给的匹配给定字符串中常用汉字,正则表达式[u4e00-u9fa5]指定完后就就引用该正则表达式,findall()里面写出传入的字符串就可以找出汉字了。

import re

def hanzi_count(str):
    hanzi_count = re.compile('[u4e00-u9fa5]')

    hanzi_dict = hanzi_count.findall(str)
    
    hanzi_join=''.join(hanzi_dict)
    print("该输入的字符里有 {0} 个汉字分别是:n{1}".
          format(len(hanzi_dict), hanzi_join))

hanzi=input("请输入任意字符,但要确保里面含有汉字:")
hanzi_count(hanzi)

运行结果:

 

 

3. 编写函数trans(str)实现字符串中数字转化为大写汉字。例如 "0123456789"转化为 "零壹贰叁肆伍陆柒捌玖"。

han_number= ["零", "壹", "贰", "叁",
             "肆", "伍", "陆", 
             "柒", "捌", "玖"]
def trans(str):
    count = " "
    for i in range(len(str)):
        num = int(str[i])
        count += han_number[num]
    print(count)
Str=input("请输入数字:")
S=trans(Str)

运行结果:

4.编写程序,校验键盘录入的电子邮箱是否合法,并测试。

思路:格式就是最前面数字,字母所以我这里想到的是w然后艾特符号@后面就是字符再后来就是"."后面又是字符所以['w+@+w+.+w']

import re
def Mail(Mail):
    if re.findall('w+@+w+.+w',Mail):
        print("合法!")
    else:
        print("不合法!!!")
mail=input("请输入邮箱账号:")
Mail(mail)

运行结果:

 

5.已知有字符串"张三 张四 王小玲 1320888XX23 4XX9599 XXXtom@126.com 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》", 设计正则表达式,并编写代码完成以下功能:

思路:首先导入提出给定的字符串,然后用re模块调用findall()方法来写出正则表达式的条件,然后就输出。

import re
str1="张三 张四 王小玲 13208888123 4819599
    zhangtom@126.com ,676197687211@qq.com 1999-03-26 
   《凡人修仙传》《水浒传》"
telephon1,telephon2=re.findall('(13[2-9]d{8}|d{7} )',str1)
mail1,mail2=re.findall('w+@+w+.+w', str1)
novel1,novel2=re.findall('《+[u4e00-u9fa5]+》',str1)
date=re.findall('d{4}-d{1,2}-d{1,2}',str1)

print("手机号码为:{0}t{1}n邮箱账号为:{2}t{3}n
小说名称为:{4}t{5}n日期为:{6}".format(telephon1,telephon2
,mail1,mail2,novel1,novel2,date[0]))

运行结果:

 

感觉写的好乱

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858635.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号