如何使用Linq更改字符串中的特定字符

时间:2015-11-06 08:45:40

标签: c# linq

我有一个像这样的字符串结构:

select * from some_table order by id offset 42 fetch first 42 rows only;

我正在尝试使用3或45或65等任何单个值更改Exec Test @totalRows = 10 ,@DateCriteria = 'nd',@NDays = -7 ,@GroupIds = '3,4,6,7',@OrderBy = 'DESC''3,4,6,7'可以是逗号分隔的N个数字,例如'3,4,6,7'。这些基本上都是ID。我想用一个单一的值来改变它们。所以我需要的字符串将变成:

'1,2,3,45,33,111,33'

Exec Test @totalRows = 10 ,@DateCriteria = 'nd',@NDays = -7 ,@GroupIds = '455',@OrderBy = 'DESC'只是一个例子,它可以是任何整数值。

到目前为止,我已经尝试过没有Linq

455

1 个答案:

答案 0 :(得分:5)

您可以使用正则表达式轻松完成此操作。

Regex.Replace(your string,@"(?<=')(\d,?)+(?=')","455")

我不知道你为什么要使用LINQ。但正则表达式更适合这些目的。
修改:看起来您只需要更改GroupId。在这种情况下,您可以像这样修改正则表达式模式:

@"(?<=@GroupIds = ')(\d,?)+(?=')"