Python_编程题集_001_词法解析

发布时间:2019-06-06 20:42:49编辑:auto阅读(1796)

    
    

    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





关键字