首页 > 解决方案 > 使用一定数量的转义引号解析用户输入

问题描述

作为一个小挑战,我正在用 Python 构建一个编译器,该编译器接收一个文件,使用一种具有我编写的语法的语言,并运行它,执行我的内置函数,如println(somestr). (我知道我这样做的方式是不明智和丑陋的)。

特别是这个内置功能给我带来了一些问题。我想允许用户在他们的文件中有这样一行:

println("John said " + "\"Foo.\"")

应该输出类似的东西John said "Foo."不幸的是,我阅读文件的方式给了我这样的东西(println剥离):

"\"John said \" + \"\"Foo.\"\""

这使得很难区分用户定义的转义和自动生成的转义。这意味着我无法分离不同的字符串,如下所示:

["John said ", "\"Foo\""]

所以我可以连接它。(它也可能包括我可以处理的变量。)

不幸的是,我没能走到这一步。我试过通过re模块使用正则表达式,但我没有太多经验,也无法工作。

有没有更好的解决方法?

标签: python

解决方案


推荐阅读