在VisualStudio 编辑器文本替换中使用正则表达式
替换时使用正则表达式,其优点在于可以通过正则分组捕获,并在替换字符串中使用。
在VS2012之前的版本中,捕获内容用{}包含,引用时,使用 \1 形式;
在VS2012及以后版本中,捕获内容符合正则表达式,用()包含,引用时使用 $1 形式。
下面以新版本格式举例说明:
假设代码中包含多个自动属性,如
1 public bool IsChecked { get; set; } 2 public double Width { get; private set; } 3 private int Count { get; set; }
假设所在类型实现INotifyPropertyChanged接口,且有方法
1 void RaisePropertyChangedEvent(string PropertyName){ 2 PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName)); 3 }
现在要为所有公共属性添加相应的私有字段,使其能在赋值变更时调用函数触发属性通知事件,则可在Ctrl + h唤出替换窗口,并启用正则表达式。
在源文本框中输入:
public (\S*) (\S*) { get; (\S*\s?)set; }
在替换目标文本框中输入:
public $1 $2 { get { return _$2; } $3set { _$2 = value; RaisePropertyChangedEvent("$2"); } } $1 _$2;
在匹配文本中,每个分组用小括号()包含,并从1开始捕获。标记为红色的为属性类型,标记为绿色的为属性名,标记为紫色的为set访问器修饰符。
在目标文本中,被捕获的文本用美元符号$和1基索引值代表,替换后的代码为每个公共属性增加了一个私有字段,该字段名为在属性名前加上一个下划线_。
1 public bool IsChecked { get { return _IsChecked; } set { _IsChecked = value; RaisePropertyChangedEvent("IsChecked"); } } bool _IsChecked; 2 public double Width { get { return _Width; } private set { _Width = value; RaisePropertyChangedEvent("Width"); } } double _Width; 3 private int Count { get; set; }
分类:
.net classic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界