阻止正则表达式删除小数点

时间:2014-10-30 08:06:32

标签: c# regex replace

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

在句子中:

  

您好,我的名字是Roger

我正在用这个正则表达式提取“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

当我应用相同的正则表达式时,我最终得到了这个:

  

3

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

1 个答案:

答案 0 :(得分:2)

在打印第一个数字后停止,因为以下.不是单词字符。要匹配文字点,您需要将\w.放在character class内。

Regex reg3 = new Regex("is\\s[.\\w]+");

OR

Regex reg3 = new Regex(@"is\s[.\w]+");