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

在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. asp.net mvc4 简单的服务器监控开发之C#获取服务器CPU、RAM、TCP等系统信息(上)

    一.背景 前段时间服务器出了点问题,加上学业愈来愈紧张,写博文分享的时间越来越少.虽然不是第一次在博客园上写经验,但是近期分享的博文得到了不少的朋友支持和指正,在这里内心非常感激和开心.希望以后能认真 ...

  2. 文本文件关键字替换(Java)

    代码实现如下: import java.io.File; import java.io.PrintWriter; import java.util.Scanner; public class File ...

  3. 架构师养成记--11.Executor概述

    常用方法 Executors.newFiexdPool(int nThreads);固定线程数量的线程池: Executors.newSingleThreadExecutor();单个线程的线程池: ...

  4. CocoaPods升级,升级以后出现bug的解决方法(升级必看!)

    命令行更新(安装)步骤[更新步骤] $ sudo gem update --system // 先更新gem,国内需要切换源 $ gem sources --remove https://rubyge ...

  5. 【mysql】mysql 常用建表语句

    [1]建立员工档案表要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门.[2]合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primary ...

  6. 浅谈Android样式开发之View Animation (视图动画)

    引言 一个用户体验良好的App肯定少不了动画效果.Android为我们提供了2种动画框架,分别是视图动画(View Animation)和属性动画(Property Animation).视图动画比较 ...

  7. leetcode笔记

    82. Remove Duplicates from Sorted List II https://leetcode.com/problems/remove-duplicates-from-sorte ...

  8. 记录我学github的路程(三)

    2015-12-22 更新 一.Bug分支 1,假设如下场景,你正在dev分支工作,突然接到一个修复代号为101的bug的任务时,dev的东西还没不能提交,但是bug需要马上修复. Git提供了一个s ...

  9. FSM(状态机)、HFSM(分层状态机)、BT(行为树)的区别

    游戏人工智能AI中最常听见的就是这三个词拉: FSM 这个不用说拉,百度一大堆解释, 简单将就是将游戏AI行为分为一个一个的状态,状态与状态之间的过渡通过事件的触发来形成. 比如士兵的行为有“巡逻”, ...

  10. webservice客户端添加soap Header信息

    根据wsdl文件的header信息,在客户端中添加相应的header 1.wsdl信息如图 <soapenv:Envelope xmlns:soapenv="http://schema ...