为了提高Python代码库的可读性,我想对所有包含换行符的字符串进行转换,并将其转换为多行字符串。 例如
`SELECT c.name AS 'ColumnName'
,t.name AS 'TableName'
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name = c.name`
ORDER BY TableName, ColumnName;`
应转换为:
foo = 'line 1\nline2\nline3'
我认为可以通过应用正则表达式替换来做到这一点? 有更好的选择吗?我想到的是使用实际上可以分析python AST的工具,并允许以不同的方式重新生成代码,或者这个方向过大吗?
答案 0 :(得分:0)
知道了。我将不重复如何识别字符串。有很多方法,正则表达式可能会很适合您。将行分成三部分:pre_str
,multi_str
,post_str
。下面的代码假定引号在multi_str
中。
tri_q = "'''"
if `\n` in multi_str:
if "'''" in multi_str:
tri_q = '"""'
print(pre_str, tri_q, multi_str[1:-1], tri_q, post_str)
else:
# string is not multi-line: just dump the original text.
可以处理您的未解决问题吗?