替换时使用正则表达式,其优点在于可以通过正则分组捕获,并在替换字符串中使用。

在VS2012之前的版本中,捕获内容用{}包含,引用时,使用 \1 形式;

在VS2012及以后版本中,捕获内容符合正则表达式,用()包含,引用时使用 $1 形式。

下面以新版本格式举例说明:

假设代码中包含多个自动属性,如

 public bool IsChecked { get; set; }
public double Width { get; private set; }
private int Count { get; set; }

假设所在类型实现INotifyPropertyChanged接口,且有方法

 void RaisePropertyChangedEvent(string PropertyName){
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}

现在要为所有公共属性添加相应的私有字段,使其能在赋值变更时调用函数触发属性通知事件,则可在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基索引值代表,替换后的代码为每个公共属性增加了一个私有字段,该字段名为在属性名前加上一个下划线_。

 public bool IsChecked { get { return _IsChecked; } set { _IsChecked = value; RaisePropertyChangedEvent("IsChecked"); } } bool _IsChecked;
public double Width { get { return _Width; } private set { _Width = value; RaisePropertyChangedEvent("Width"); } } double _Width;
private int Count { get; set; }

在VisualStudio 编辑器文本替换中使用正则表达式的更多相关文章

  1. Python::re 模块 -- 在Python中使用正则表达式

    前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...

  2. UltraEdit中使用正则表达式

    正则表达式 (UltraEdit Syntax): % 匹配行首 - 表明要搜索的字符串一定在行首. $ 匹配行尾 - 表明要搜索的字符串一定在行尾 ? 匹配除换行符外的任一单个字符. * 匹配任意个 ...

  3. 玩转PHP中的正则表达式

    玩转PHP中的正则表达式 检验用户输入.解析用户输入和文件内容,以及重新格式化字符串 级别: 中级 正则表达式提供了一种处理文本的强大方法.使用正则表达式,您可以对用户输入进行复杂的检验.解析用户输入 ...

  4. 008-js中的正则表达式

    查看地址:http://www.runoob.com/js/js-regexp.html 一.正则表达式概述 正则表达式(英语:Regular Expression,在代码中常简写为regex.reg ...

  5. Python编程中 re正则表达式模块 介绍与使用教程

    Python编程中 re正则表达式模块 介绍与使用教程 一.前言: 这篇文章是因为昨天写了一篇 shell script 的文章,在文章中俺大量调用多媒体素材与网址引用.这样就会有一个问题就是:随着俺 ...

  6. 精通 JavaScript中的正则表达式

    精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证  ...

  7. python中的正则表达式的使用

    一.正则表达式简介 正则表达式的官方文档:https://www.runoob.com/regexp/regexp-tutorial.html 正则表达式:又称正规表示式.正规表示法.正规表达式.规则 ...

  8. PHP中有关正则表达式的函数集锦

    之前学正则表达式的目的是想从网上抓取点小说啊,文档啊,还有获取相应的视频连接然后批量下载.当时初学PHP根本不知道PHP有专门抓包的工具,就像Simple_html_dom.php(在我的其他博文中有 ...

  9. JavaScript中的正则表达式(终结篇)

    JavaScript中的正则表达式(终结篇) 在之前的几篇文章中,我们了解了正则表达式的基本语法,但那些语法不是针对于某一个特定语言的.这篇博文我们将通过下面几个部分来了解正则表达式在JavaScri ...

随机推荐

  1. DeepMind背后的人工智能:深度学习原理初探

    去年11月,一篇名为<Playing Atari with Deep Reinforcement Learning>的文章被初创人工智能公司DeepMind的员工上传到了arXiv网站.两 ...

  2. 多条件分页查找(SQL拼接方法)

    def startTime=params.startTime+" 00:00:00"  def endTime=params.endTime + " 23:59:59&q ...

  3. 从linux0.11中起动部分代码看汇编调用c语言函数

    上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...

  4. ABBA BABA statistics

    The ABBA BABA statistics are used to detect and quantify an excess of shared derived alleles, which ...

  5. 【codeforces 148D】 Bag of mice

    http://codeforces.com/problemset/problem/148/D (题目链接) 题意 包中有w个白鼠,b个黑鼠.公主和龙轮流画老鼠,公主先画,谁先画到白鼠谁就赢.龙每画完一 ...

  6. Zabbix监控redis status

    概述 zabbix采用Trapper方式监控redis status 原理 redis-cli info命令得到redis服务器的统计信息,脚本对信息分两部分处理: (1)# Keyspace部分为Z ...

  7. C#基础强化-进程操作

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  8. Python Day14

    HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏 ...

  9. QR 二维码总结

    @(Java ThirdParty)[QR] QR 二维码总结 根据Wiki中的介绍,QR Code(Quick Response Code),二维条形码,由日志设计应用于汽车制造工业中.条形码中包含 ...

  10. 一款强大的Android网络渗透软件dsploit

    dSploit是一款基于Android系统的功能十分全面强大的网络渗透工具,可以提供给网络安全工作人员检查网络的安全性.小黑这次主要使用了其中的"简易嗅探""会话劫持&q ...