Regex 正则表达式搜索并替换为分组
我有一个文件,有几百行,看起来像下面的。我的正则表达式技能不足以完成这项工作。 我尝试在Notepad++中使用regex进行搜索和替换,在vim中也尝试过(但失败) 这是我的正则表达式Regex 正则表达式搜索并替换为分组,regex,vim,notepad++,Regex,Vim,Notepad++,我有一个文件,有几百行,看起来像下面的。我的正则表达式技能不足以完成这项工作。 我尝试在Notepad++中使用regex进行搜索和替换,在vim中也尝试过(但失败) 这是我的正则表达式 公共字符串(^[A-Z]*[\S]){get;set} 所以我想让第一行看起来像这样 Foretag公共字符串Foretag{get;set;} 它后面的所有行都匹配我的搜索词Type=“string” 在Npp中,您可以这样做: 查找内容: ^(\w+) Type="(\w+)" 替换为: \1 publi
公共字符串(^[A-Z]*[\S]){get;set}
所以我想让第一行看起来像这样
Foretag公共字符串Foretag{get;set;}
它后面的所有行都匹配我的搜索词Type=“string”
在Npp中,您可以这样做: 查找内容:
^(\w+) Type="(\w+)"
替换为:
\1 public \2 \1 { get; set; }
在Vim中:
:%s/\(\w*\).*string.*/\1 public string \1 { get; set }
+1、如果在
string
之前添加Type=
会更好。当然,当前示例对该命令行没有问题。另外,我不明白如果一个标签是用vim标记的问题,为什么另一个标签仍然是必需的只是开个玩笑。。。回答得好!谢谢实际上,我想添加一个更通用、更坚实的解决方案(有更多的捕获组和不同的量词),但我决定不这样做,并将其保留在问题中的样本中。
:%s/\(\w*\).*string.*/\1 public string \1 { get; set }