在集成开发环境(本例中为PyCharm)中执行搜索替换时,我想要做的一件事就是避免将表达式或语句一分为二。
例如,假设我想纠正我使用的是python-2样式的print语句。我可能会这样写:
搜索:print (.+)
,替换:print($1)
但这将对多行语句做错误的事情:
print 'one' \
'two'
一般来说,识别多行语句是很复杂的。您需要检查尾随\s,还需要对多种类型的括号进行括号匹配。有没有内置的功能可以做到这一点?某种语句结束/表达式结束转义序列?
发布于 2017-03-21 01:53:39
你也许可以这样做。
查找print((?:.+?(?:\\\r?\n)?)+)
替换print($1)
扩展
print
( # (1 start)
(?:
.+?
(?: \\ \r? \n )? # Possible line-continuation
)+
) # (1 end)
https://stackoverflow.com/questions/42908876
复制相似问题