我有一个 python 编辑器,用户在其中输入脚本或代码,然后将其放入幕后的主要方法中,同时还缩进了每一行。问题是,如果用户有一个多行字符串,则对整个脚本所做的缩进会影响字符串,因为会在每个空格中插入一个制表符。问题脚本会很简单,例如:
"""foo
bar
foo2"""
所以在 main 方法中它看起来像:
def main():
"""foo
bar
foo2"""
并且该字符串现在在每一行的开头都有一个额外的制表符。
原文由 Mike 发布,翻译遵循 CC BY-SA 4.0 许可协议
因此,如果我理解正确,您可以接受用户输入的任何内容,正确缩进并将其添加到程序的其余部分(然后运行整个程序)。
因此,在您将用户输入放入您的程序后,您可以运行一个正则表达式,它基本上可以收回强制缩进。类似于:在三个引号内,将所有“换行标记”后跟四个空格(或制表符)替换为仅一个“换行标记”。