是否可以使用Regex / Replace替换盒中匹配框的匹配?

时间:2011-03-30 12:43:39

标签: regex replace

我有一个像这样的长列表

sb.AppendLine(product.product_id.Length.ToString())

我想使用正则表达式搜索和替换来将每一行更改为类似

的内容
sb.AppendLine("product.product_id " + product.product_id.Length.ToString())

这可以用正则表达式搜索和替换吗?

我在搜索框中放了什么以及我在替换盒中放了什么?

是否可以使用替换框中匹配框中的匹配项?

2 个答案:

答案 0 :(得分:1)

是的,可以使用capturing parentheses

我认为product_id是可变的 搜索:

sb\.AppendLine\(product\.(.+)\.Length\.ToString\(\)\)

替换:

sb.AppendLine("product.$1 " + product.$1.Length.ToString())

答案 1 :(得分:0)

。在vb .net

Dim str As String str =“sb.AppendLine(product.product_id.Length.ToString())”

Dim RegexObj As Regex RegexObj = New Regex(“^ sb.AppendLine((。*)。Length.ToString())$”)

Dim res As String res = RegexObj.Replace(str,“sb.AppendLine(”“$ 1”“+ product.product_id.Length.ToString())”)

在c#.net

string str = null; str =“sb.AppendLine(product.product_id.Length.ToString())”;

正则表达式RegexObj =默认(正则表达式); RegexObj =新的正则表达式(“^ sb \ .AppendLine \((。*)\ .Lo长度\ .ToString \(\)\)$”);

string res = null; res = RegexObj.Replace(str,“sb.AppendLine(\”$ 1 \“+ product.product_id.Length.ToString())”);