在Visual Studio中使用正则表达式匹配换行和批量替换

系统环境:Windows 8.1 Enterprise Update 2 x64

开发环境:Mircosoft Visual Studio Ultimate 2013 Update 2 RC

问题:如何在Visual
Studio中使用正则表达式匹配换行符,空白符,Tab符等特殊符号,并且在当前文档或当前项目或整个解决方案中批量替换你指定的代码文字?

例子:


1         /// <summary>
2 /// 根据条件查询表中所有数据
3 /// </summary>
4 /// <param name="tableName">要分页显示的表名</param>
5 /// <param name="fieldShow">以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段</param>
6 /// <param name="fieldOrder">以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC用于指定排序顺序</param>
7 /// <param name="where">查询条件</param>
8 /// <returns></returns>
9 List<T> GetAllData<T>(string tableName, string fieldShow, string fieldOrder, string where) where T : new();

答案:

在Visual Studio IDE 中按 Ctrl+Shift+H 打开[在文件中替换]的窗口,

在{查找内容(N):}文本框中输入:

</returns>[\s]+[^\S\r\n]+List<T>
或者
</returns>[\r\n]+[^\S\r\n]+List<T>

在{替换为(P):}文本框中输入:

</returns>\r\n\t\t[Obsolete("不建议使用该方法,请使用同签名的方法代替。")]\r\n\t\tList<T>

在{查找范围(L):}下拉框中选择,你需要查找的范围,因为我是要整个当前项目中所有匹配项替换,所以我选择的是"当前项目"。

按{全部替换(A)},就会把所有匹配项全部替换成你所需要替换的内容了。

这次我批量替换了共67个文件,67行。

解答:这次我是想在XML注释的尾部以及该尾部的下一行首单词中间添加一行

[Obsolete("不建议使用该方法,请使用同签名的方法代替。")]

XML尾部是</returns>,而该尾部的下一行首单词是List<T>,在这两行之间有几个我们看不见的转义符\r\n\t,然而如果我们把正则表达式写成这样:

</returns>[\r\n\t]+List<T>
或者
</returns>[\r\n]+[\t\t]+List<T>

你将无法匹配到任何行。

因为在Visual Studio,你若需要匹配换行符以及空白符,需要配合[\S\s]以及[^]。

而\S\s是什么意思呢?

大写的\S是匹配任何非空白字符。

小写的\s是匹配任何空白字符,其中包括空格,制表符和换页符。

而^是将匹配字符串锚定到行首或字符串首。

+就不用说了吧?是匹配前面表达式的一个或更多匹配项(并匹配尽可能多的字符)。

因为行尾包含\r\n,所以你可以用[\r\n]或者[\s],在不确定有多少个这样的特殊转义符的情况下,使用[\r\n]+或者[\s]+

重点来了,因为要匹配下一行,即换行,所以你还需要加个^,在你有用Visual
Studio内置格式化的情况下,虽然行首是一个\t或以上,但是你仍然要用\S来替代,组合起来就是[\S\r\n]+。

拼接起来就得到了</returns>[\s]+[^\S\r\n]+List<T>了。

而在{替换为(P):}那里,比较简单,就不做详述了。

参考Visual Studio 官方MSDN在线帮助文档:http://msdn.microsoft.com/en-us/library/2k3te2cs.aspx

在Visual Studio中使用正则表达式匹配换行和批量替换

时间: 2024-10-10 15:21:04

在Visual Studio中使用正则表达式匹配换行和批量替换的相关文章

在 Visual Studio 中使用正则表达式

Visual Studio 使用 .NET framework 正则表达式查找和替换文本. 在 Visual Studio 2010 和早期版本中,Visual Studio 在“查找和替换”窗口中使用自定义正则表达式语法.  本主题介绍如何将一些更常用的自定义正则表达式符号转换为 .NET 版本. 用途 新建 旧 新示例 匹配任何单个字符(分行符除外) . . a.o 匹配“around”中的“aro”和“about”中的“abo”,但不匹配“across”中的“acro”. 匹配前面表达式的

模拟Visual Studio中的完全匹配查找

public enum EnumDataType { 中文 = 0, 英文 = 1, 数字 = 2, 特殊字符 = 3, 中文与特殊字符 = 4, 英文与数字 = 5, } public static class CharExtend { /// <summary> /// 获得该字符类型 /// </summary> /// <param name="item"></param> /// <returns></retu

正则表达式匹配换行实例代码

正则表达式匹配换行实例代码: 在javascript中,使用正则表达式匹配换行可能会遇到各种问题,下面就通过实例介绍一下如何实现此功能. <div id=”main”> <div id=”left”> </div> <div id=”right”> 蚂蚁部落 </div> </div> 如果DIV内没有内容则不换行 把上面的改为: <div id=”main”> <div id=”left”></div&

在Visual Studio中入门F#

写在前面的话 个人由某方面的兴趣需要学习 F#,网络上有关F#的中文资料很少,微软官方有很不错的文档,但是很可惜的是绝大部分的章节都是英文的.个人是一位.NET爱好者,想自己将 F# 的官方文档翻译出来,算是为了自己喜欢的 .NET 做一些贡献. 原文链接 Getting started with F# in Visual Studio 在这篇文章中 安装 F# 创建一个控制台应用程序 编写您的代码 运行您的代码 使用 F# Interactive 在 Visual Studio IDE 中支持

VS2015--在 Visual Studio 中调试时映射调用堆栈上的方法

https://msdn.microsoft.com/zh-cn/library/dn194476.aspx 在 Visual Studio 中调试时映射调用堆栈上的方法 创建代码图,以便在调试时对调用堆栈进行可视化跟踪.你可以在图中进行标注以跟踪代码执行的操作,以便专注于查找 Bug. 生成调用堆栈图 1 开始调试.(键盘:"F5") 2 在你的应用进入中断模式或你单步执行某一函数之后,请选择"代码图".(键盘:Ctrl + Shift + `) 当前的调用堆栈在

在Visual Studio中使用GitHub(使用篇)

一.准备工具 上一篇中我们已经安装了Git Extensions和Tortoisegit.在这里我们要为Visual Studio安装一个插件,专门用于Git. Git Source Control Provider,打开http://visualstudiogallery.msdn.microsoft.com/ 搜索"Git"关键字,即可搜索到该插件. 二.配置源码管理工具 三.配置帐户关联 四.使用 后面的事情就很简单了,创建文件夹 pull 一个副本,修改文件,commit文件,

Visual Studio中创建混合移动应用程序解决方案Xamarin Portable Razor

在Visual Studio中创建混合移动应用程序的一个解决方案是使用Xamarin Portable Razor工具,这是ASP.NET MVC API针对移动设备的一个轻量级实现.Xamarin编写了一个示例应用程序,演示了如何使用C#.本地API和Web技术编写iOS及Android应用. Visual Studio中创建混合移动应用程序解决方案Xamarin Portable Razor,布布扣,bubuko.com

去除 Visual Studio 中臃肿的 ipch 和 sdf 文件

使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量,可惜毕竟硬盘还没有廉价到免费的地步. 那么,该怎么解决呢?其实可以关闭它.方法: Tools->Options->Text Editor->C/C++->Advanced->Disable Database,设置为True 但是这样的办法会产生另外的一些问题,可能会导致其他的一些

如何在Visual Studio中选择C++和C#的编译器版本

博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在Visual Studio中选择C++和C#的编译器版本.