前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python_编程题集_001_词法解析

Python_编程题集_001_词法解析

作者头像
py3study
发布2020-01-16 15:32:56
3330
发布2020-01-16 15:32:56
举报
文章被收录于专栏:python3python3python3

1.词法解析:

我的是名字是ths,今年18岁 语法分析后得到结果如下: 数字:18 中文:我的名字是 今年 岁 拼音:ths 符号:,。 请编写程序实现该词法分析功能

string模块解:

import string #引用string模块完成解析
def find(s):
    digit = []  #存储数字
    letter = [] #存储字母、拼音
    punctuation = [] #存储符号、空格   
    chinese = []    #存储中文
    for i in s:
        if i in string.digits:
            digit.append(i)
        elif i in string.ascii_letters:
            letter.append(i)
        elif i in string.punctuation or i.isspace():
            punctuation.append(i)
        else:
            chinese.append(i)
        print('数字:{}'.format(''.join(digit)))
        print('拼音:{}'.format(''.join(letter)))
        print('符号:{}'.format(''.join(punctuation)))
        print('中文:{}'.format(''.join(chinese)))

正则解:词法分析

import re
def analysis(str):
    ze={"数字":"\\d","拼音":"[a-zA-Z]","汉字":"[\u4e00-\u9fff]"}
    for k,v in ze.items():
        jg=re.findall(v,str)
        print(k + ":" + ''.join(jg))
        str=re.sub(v,'',str)
        print('符号:{0}'.format(str))

博客随笔:https://i.cnblogs.com/EditPosts.aspx?opt=1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.词法解析:
    • string模块解:
      • 正则解:词法分析
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档