【问题标题】:Multi line Find and Replace get set property notepad++ or visual studio多行查找和替换获取设置属性记事本++或Visual Studio
【发布时间】:2017-06-25 12:45:11
【问题描述】:

我必须替换下面的表达式:-

public string Body =>
        this._body;

收件人:

public string Body
      {
        get{return _body;} 
          set{_body = value;}
    }

我正在使用 Notepad++ 查找和替换如下:- 查找正则表达式:=>\s*.*?; 替换正则表达式:{get{return\s*.*?;} set{\s*.*? = value;}}

这似乎不起作用并在没有属性名称的情况下错误地替换它,如下所示:-

Public string Body {get{returns*.*?;} set{s*.*? = value;}}

我们如何更改表达式以使用属性名称获得所需的结果? 我们也可以在Visual Studio 中做这样的事情吗?谢谢。

【问题讨论】:

  • 为什么要使用正则表达式?似乎您不需要 regx,除了空格。视觉工作室查找和替换似乎总是对我很有效。
  • 它似乎对一个人有用。但是我们也试图一次替换所有其他属性的所有此类事件。我们有几个要替换的属性。查看了 Visual Studio 多行查找和替换插件,但无法找到所有正则表达式。
  • 试试我发布的内容。我复制并粘贴到一个文件中并将它们分散在整个地方并更改了一些空格,它使用 regx 在文件中替换发现它们全部

标签: c# visual-studio notepad++ multiline find-replace


【解决方案1】:

这是使用 Npp 完成工作的一种方法:

  • Ctrl+H
  • 查找内容:\b(public\s+string\s+Body)\s+=>\s+this\.(\w+);
  • 替换为:$1 {get{returns $2;} set{$2 = value;}}
  • 全部替换

【讨论】:

    【解决方案2】:

    这适用于 VS2015 (\bpublic\b[\s\r\n]*\bstring\b[\s\r\n]*\bBody\b([\s|\r\n]*)=>([\s\r\n]*)\bthis\b([\s\r\n]*)\b\._body\b) 中的查找

    我只是使用查找并单击突出显示的区域并将其粘贴到其中,具体取决于发生了多少替换。如果它们具有相同的文件类型.ext

    ,您几乎最好编写一个小型控制台应用程序来遍历目录中的所有文件

    我喜欢here 这种方法,您可以更进一步,传递目录并使用Directory.EnumerateFiles() 遍历所有匹配的 regx(*).cs 文件

    【讨论】:

      猜你喜欢
      • 2017-08-09
      • 1970-01-01
      • 2013-11-23
      • 2014-07-18
      • 1970-01-01
      • 2013-08-20
      • 2010-10-23
      • 2017-12-07
      • 2016-12-10
      相关资源
      最近更新 更多