文件名称:字符串令牌解析-华为云大数据中台架构分享
文件大小:5.68MB
文件格式:PDF
更新时间:2024-07-01 05:00:19
Python cookbook 中文 参考
2.18 字符串令牌解析
问题
你有一个字符串,想从左至右将其解析为一个令牌流。
解决方案
假如你有下面这样一个文本字符串:
text = 'foo = 23 + 42 * 10'
为了令牌化字符串,你不仅需要匹配模式,还得指定模式的类型。 比如,你可
能想将字符串像下面这样转换为序列对:
tokens = [('NAME', 'foo'), ('EQ','='), ('NUM', '23'),
('PLUS','+'),
('NUM', '42'), ('TIMES', '*'), ('NUM', '10')]
为了执行这样的切分,第一步就是像下面这样利用命名捕获组的正则表达式来
定义所有可能的令牌,包括空格:
import re
NAME = r'(?P