【问题标题】:How to add "-> None:" to the end of __init__ functions with Notepad++?如何使用 Notepad++ 将“-> None:”添加到 __init__ 函数的末尾?
【发布时间】:2021-03-04 23:26:36
【问题描述】:

我想选择每个 __init__ 函数,如果 -> None 不存在,则将其添加到末尾。例如:

def __init__(self) -> None:

def __init__(self):

def __init__(self, var1, var2):

def __init__(self, var1, var2) -> None:

def __init__(self, 
    var1= 5, 
    var2: int = 4
    var3 = None
    ):

def (self, 
    var1= 5, 
    var2= 4) -> None:

我发现(def __init__\((.*?))(:) 似乎选择了正确的行,但我不知道如何让它忽略包含以下内容的行/行组:-> None

【问题讨论】:

标签: python regex notepad++


【解决方案1】:

你可以使用

^(\h*def\h+__init__\([^()]*\)):

替换为$1 -> None:

详情

  • ^ - 行首
  • (\h*def\h+__init__\(.*?\)) - 第 1 组:
    • \h* - 0+ 个水平空格
    • def - def 字符串
    • \h+ - 1+ 个水平空格
    • __init__ - __init__ 字符串
    • \( - 一个 ( 字符
    • [^()]* - 除 () 之外的任何 0+ 个字符
    • \) - 一个 ) 字符。
  • : - 冒号。

【讨论】:

  • 我刚刚测试过,只有在所有内容都在同一行时才有效。如果我检查“匹配换行符”,它似乎选择了很多。
  • @ProGamerGov 我更新了答案,现在,您不必使用 . 匹配换行符^(\h*def\h+__init__\([^()]*\)):
猜你喜欢
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多