停止regex删除小数点

本文关键字:小数点 删除 regex 停止 | 更新日期: 2023-09-27 18:28:28

在我的公式中,我试图删除regex代码中提到的特定单词后面出现的第一个单词。例如:

句中:

你好,我的名字是罗杰

我用这个正则表达式提取单词"罗杰":

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

这是因为正则表达式删除了"is"之后的所有字符,我如何更改正则表达式,使其在如上所述的情况下保持decimal数字不变并打印3.05?

停止regex删除小数点

它在打印第一个数字后停止,因为下面的.不是单词字符。为了匹配文字点,您需要将'w.放在一个字符类中。

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

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