我的是名字是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