Python_编程题集_001_词法解析
程序员文章站
2023-01-30 08:26:37
1.词法解析: 我的是名字是ths,今年18岁 语法分析后得到结果如下: 数字:18 中文:我的名字是 今年 岁 拼音:ths 符号:,。 请编写程序实现该词法分析功能 string模块解: import string #引用string模块完成解析 def find(s): digit = [] ......
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))