Erlo

Python_编程题集_001_词法解析

2019-05-19 23:02:06 发布   470 浏览  
页面报错/反馈
收藏 点赞


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





登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认