使用正则表达式替换c#中十进制数之间的用户定义字符串

使用正则表达式替换c#中十进制数之间的用户定义字符串,c#,regex,string,C#,Regex,String,我有一个带十进制数的字符串。出于其他原因,我想替换十进制数之间的字符,而不是“.” 比如说, string str="SAIF Partners had invested $22.5 million in 2006." 我需要的是,我想替换$22.5之间的一个字符,就像这个$22r!5. 所以我的最后一串是这样的 string final="SAIF Partners had invested $22r!5 million in 2006." 我怎样才能做到这一点?任何帮助都将不胜感激 我尝

我有一个带十进制数的字符串。出于其他原因,我想替换十进制数之间的字符,而不是“.”

比如说,

string str="SAIF Partners had invested $22.5 million in 2006."
我需要的是,我想替换$22.5之间的一个字符,就像这个$22r!5. 所以我的最后一串是这样的

string final="SAIF Partners had invested $22r!5 million in 2006."
我怎样才能做到这一点?任何帮助都将不胜感激

我尝试了下面的代码。但我想我错过了什么

  string final= Regex.Replace(str, @"[^\D]+", "r!");

(?请在答案中添加更多说明,不欢迎只使用代码的答案。添加解释通常会导致更多投票。
string input = "SAIF Partners had invested $22.5 million in 2006.";
var output = Regex.Replace(input, @"(\d+)(\.)(\d+)", "$1r!$3");
(?<=\d)\.(?=\d)