在visual studio中使用正则表达式查找和替换程序集

Luk*_*ley 6 c# regex visual-studio-2010

我们有一个超过25个项目的解决方案,每个项目都有它自己AssemblyInfo我试图增加所有的程序集编号,以增加我们下一个版本的一个主要版本.

我的正则表达式技能很小,但基本上我想找到:

<Assembly: AssemblyVersion("x.x.x.x")>
Run Code Online (Sandbox Code Playgroud)

x在正则表达式而言将是\d/一个数字.看这里我以为我可以使用:

{AssemblyVersion("[\d].[\d].[\d].[\d]")}
Run Code Online (Sandbox Code Playgroud)

哪个没用,它不喜欢开括号.我的问题基本上分为两个阶段:

  1. 我将使用什么正则表达式字符串来查找示例?
  2. 是否可以使用正则表达式用数字+ 1替换第一个数字?(我怀疑我有点乐观)如果是这样,那么正则表达式字符串在这种情况下是什么?

这是源代码控制,所以我不想直接修改文件.

提前致谢.

chu*_*e x 4

注意:这是使用 Visual Studio 正则表达式查找和替换。

我不认为你可以在进行正则表达式替换时添加一个。但是,您可以替换为文字数字。例如,您可以使用正则表达式将第一个数字替换199

AssemblyVersion("1.0.2121.0")-->AssemblyVersion("99.0.2121.0")

这是我用于 Visual Studio 搜索和替换的正则表达式:

Search Regex:  AssemblyVersion[(]["]([0-9]+)([.][0-9]+[.][0-9]+[.][0-9]+)["][)]
Replace Regex: AssemblyVersion("99${2}")
Run Code Online (Sandbox Code Playgroud)

搜索正则表达式(.")通过将所有特殊字符括在方括号中来转义它们。然后它使用括号将版本号分成两组。第一组是第一组数字。第二组是最后三组数字。

例如,AssemblyVersion("1.0.2121.0")像这样分组(使用大括号进行分组): AssemblyVersion("{1}{.0.2121.0}")。所以组 1 是1,组 2 是.0.2121.0

替换正则表达式AssemblyVersion("99${2}")使用搜索正则表达式中的文字和组 2 来构建替换字符串。这些${2}方法使用组 2 中的文本。字符串的其余部分是文字。