我需要在具有许多函数定义的大量 Python 文件中替换所有出现的
def some_func(foo, bar):
和
@jit(parallel=True)
def some_func(foo, bar):
无论缩进级别如何def some_func(foo, bar)
。
示例:我想替换
def some_func_1(foo, bar):
def some_func_2(foo, bar):
def some_func_3(foo, bar):
def some_func_4(foo, bar):
和
@jit(parallel=True)
def some_func_1(foo, bar):
@jit(parallel=True)
def some_func_2(foo, bar):
@jit(parallel=True)
def some_func_3(foo, bar):
@jit(parallel=True)
def some_func_4(foo, bar):
PS.:也欢迎对这种(ab)使用的幼稚方法发表评论/批评@jit
(例如,如果这根本不起作用)!
这适用于任何类型的空格(空格或表格)和任何类型的换行符
\n
,\r\n
,\r
.^(\h*)(?=def\b.*(\R))
$1@jit\(parallel=True\)$2$1
. matches newline
解释:
替代品:
截图(之前):
截图(之后):
更好的解决方案可能是使用jit_module自动 jit 你的所有功能
您可以使用正则表达式捕获组,然后在替换的两行上重用第一组(缩进)。
搜索(使用正则表达式):
并替换为:
看实际:
在记事本++中,搜索
(^.*)(def )
(末尾有空格)并替换为\1@jit\(parallel=True\)\r\n\1\2
作品。最后的空格很重要,否则字符串等default
也会被替换。