python - 使用一定数量的转义引号解析用户输入
问题描述
作为一个小挑战,我正在用 Python 构建一个编译器,该编译器接收一个文件,使用一种具有我编写的语法的语言,并运行它,执行我的内置函数,如println(somestr)
. (我知道我这样做的方式是不明智和丑陋的)。
特别是这个内置功能给我带来了一些问题。我想允许用户在他们的文件中有这样一行:
println("John said " + "\"Foo.\"")
应该输出类似的东西John said "Foo."
不幸的是,我阅读文件的方式给了我这样的东西(println
剥离):
"\"John said \" + \"\"Foo.\"\""
这使得很难区分用户定义的转义和自动生成的转义。这意味着我无法分离不同的字符串,如下所示:
["John said ", "\"Foo\""]
所以我可以连接它。(它也可能包括我可以处理的变量。)
不幸的是,我没能走到这一步。我试过通过re
模块使用正则表达式,但我没有太多经验,也无法工作。
有没有更好的解决方法?
解决方案
推荐阅读
- jquery - 如何从javascript中的变量的选择中获取值
- flutter - Flutter:如何从 Cloud Firestore 的数组数据字段中获取数据?
- sap-fiori - 自定义 OData 服务在 iOS SAP Cloud Platform 应用程序上缺少属性
- synchronization - vkCmdPipelineBarrier 澄清渲染通道同步范围
- python - Python TypeError:“int”对象在 OOP 中不可调用
- amazon-web-services - AWS - 获取与用户 ID 关联的电子邮件
- python - 尽管安装了 pandas,但我无法在 PyCharm 上使用 Pandas 读取任何 CSV 文件
- indexing - 在 Excel 中查找满足多个条件的匹配项
- php - php 从数组到日期累计添加数字
- sql-server - 针对同一个表结果的外部应用(和交叉应用)