正则表达式在引号内找到C#C#

时间:2014-03-18 07:16:47

标签: c# regex asp.net-web-api

我正在编写一个命令行工具来将webapi 1.0项目升级到webapi 2.0。

我想在项目内的packages.config文件中读取引用的版本号。

我的问题是如何找到版本号并用适当的版本号替换它。要查找的这个字符串可以是任何随机版本号,我不想对此进行硬编码并提取。我正在寻找一种有效的方法来提取前面和后面空格的以下字符串。

 version="a.b.c.d" 

我完全不知道如何找到这个并将a.b.c.d替换为x.y.z

配置文件中的示例行:

<package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net45" />

2 个答案:

答案 0 :(得分:2)

这样的事情:\s+version=".+?"\s+将匹配文本version=和引号内的任何内容。所以你可以这样做:找到:\s+version=".+?"\s+替换为:version="x.y.z"

然而,上面的内容将取代所有version=字符串,我不知道这些字符串是否适用于你。

答案 1 :(得分:1)

我不认为RegEx是最好的方法。 .NET提供XmlReaderXmlWriter这是IMO的最佳解决方案。