您只需要
shlex在POSIX模式下使用词法分析器即可。
posix=True创建词法分析器时添加。
(请参阅shlex解析规则)
lexer = shlex.shlex('''age=12,name=bob,hobbies="games,reading",phrase="I'm cool!"''', posix=True)lexer.whitespace_split = Truelexer.whitespace = ','props = dict(pair.split('=', 1) for pair in lexer)
输出:
{'age': '12', 'phrase': "I'm cool!", 'hobbies': 'games,reading', 'name': 'bob'}
PS:只要输入可以包含引号
=或
,字符,则正则表达式将无法解析键值对。即使预处理字符串,也无法使输入由正则表达式解析,因为不能将这种输入形式化地定义为正则语言。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)