【问题标题】:Regex search and replace with grouping正则表达式搜索和分组替换
【发布时间】:2013-03-19 10:32:13
【问题描述】:

我有一个包含数百行的文件,如下所示。我的正则表达式技能不足以完成工作。 我正在尝试在 Notepad++ 中使用正则表达式进行搜索和替换,在 vim 中也尝试过(但失败了)。

这是我的正则表达式

public string (^[A-Z]*[\S]) { get; set }

所以我想让第一行看起来像这样

Foretag public string Foretag { get; set; }

以及它后面的所有行都与我的搜索词 Type="string"

匹配
Foretag Type="string"
DagboksDatum Type="DateTime"  
Byggdag Type="int"  
PaborjadeArbeten Type="string"  
FardigaArbeten Type="string"  

【问题讨论】:

    标签: regex vim notepad++


    【解决方案1】:

    在 Vim 中:

    :%s/\(\w*\).*string.*/\1 public string \1 { get; set }
    

    【讨论】:

    • +1,最好在string前加上Type=。当然,当前示例对此命令行没有问题。另外我不明白是否有人用vim标记了一个问题,为什么仍然需要另一个标记notepad++? ^_^ 开个玩笑……很好的答案!
    • 谢谢。实际上,我考虑过添加一个更通用和更可靠的解决方案(具有更多捕获组和不同的量词),但我决定反对,并将其保留为特定于问题中的样本。
    【解决方案2】:

    你会在 Npp 中这样做:

    找到什么:

    ^(\w+) Type="(\w+)"
    

    替换为:

    \1 public \2 \1 { get; set; }
    

    【讨论】:

      猜你喜欢
      • 2013-06-14
      • 1970-01-01
      • 2018-05-25
      • 2010-11-25
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多