C# 停止正则表达式删除小数点

C# 停止正则表达式删除小数点,c#,regex,replace,C#,Regex,Replace,在我的等式中,我试图删除在正则表达式代码中提到的特定单词之后出现的第一个单词。例如: 在这句话中: 你好,我叫罗杰 我用这个正则表达式提取单词“Roger”: Regex reg3 = new Regex("is\\s\\w+"); MatchCollection match3 = reg3.Matches(result); foreach (Match match in match3) { var val = match.Value; val = val.Replace("is

在我的等式中,我试图删除在正则表达式代码中提到的特定单词之后出现的第一个单词。例如:

在这句话中:

你好,我叫罗杰

我用这个正则表达式提取单词“Roger”:

Regex reg3 = new Regex("is\\s\\w+");
MatchCollection match3 = reg3.Matches(result);
foreach (Match match in match3)
{
    var val = match.Value;
    val = val.Replace("is", "");
    val = val.Trim();
}
但在这种情况下:

我的答案是3.05

当我应用相同的正则表达式时,我会得到以下结果:

三,


这是因为正则表达式删除了“is”之后的所有字符,我如何更改正则表达式,以便在我上面提到的情况下,它保持
十进制
数字不变并打印3.05?

它在打印第一个数字后停止,因为下面的
不是单词字符。要同时匹配文字点,需要将
\w
放在


我已经编辑了你的标题。请参见“”,其中一致意见是“不,他们不应该”。您是否总是希望“是”之后的最后一个单词与所有非空格字符匹配
@“是\s\s+”
Regex reg3 = new Regex("is\\s[.\\w]+");
Regex reg3 = new Regex(@"is\s[.\w]+");