如何在第一场比赛中停止此正则表达式?

时间:2017-02-10 21:38:20

标签: c# regex

我将大量代码从遗留代码转换为可维护代码,并且我创建了一个正则表达式列表,我们可以用它来快速完成所有页面的操作。我的正则表达技巧是一个孩子用刀子跑的...它不是很好。我找了很多不同的方法来找到第一套,但我似乎无法让它发挥作用。任何人都可以为我解决这个具体问题吗?

这是正则表达式搜索并替换我使用。

正则表达式: (rs.*)\.Fields\[\"(\w+)\"\].Value

替换: $1.GetValue<object>("$2")

作品

要搜索的代码: ...rsProducts.Fields["Price"].Value...

结果: rsProducts.GetValue<object>("Price")

这就像我想要的那样,找到某事物的rs(记录集)并改变我们提取值以使用扩展方法的方式。

不起作用

要搜索的代码: ...rsProducts.Fields["Price"].Value + rsProducts.Fields["Price2"].Value...

结果: rsProducts.Fields["Price"].Value + rsProducts.Fields["Price2"].Value

应该是: rsProducts.GetValue<object>("Price") + rsProducts.GetValue<object>("Price2")

在这种情况下,搜索确实匹配2个不同的实例,但它匹配整行。这是来自regexr.com的照片。

//对不起,我没有将图像作为图像发布的声誉,但接下来就是 Link to Example Image

1 个答案:

答案 0 :(得分:1)

你没有处理两者之间+的案件。

(rs.*?)\.Fields\[\"(\w+)\"\].Value