用于捕获数字字段的正则表达式

本文关键字:正则表达式 字段 数字 用于 | 更新日期: 2023-09-27 18:36:52

我正在寻找一个正则表达式,我可以在其中提取符合条件的字符串的一部分。

字符串查找"长度为 32.00 毫米"。

我希望能够获得"32.00"。基本上是"mm"之前的第一个数值。以一种 Burte Force 的方式,它可以像这样完成:

string test = "The length is 32.00 mm";
      int idx = test.IndexOf(" mm ") - 1;
      int endIdx = idx;
      while (idx > 0)
      {
        Char c = test.ElementAt(idx);
        if (Char.IsDigit(c) == false && c != '.')
        {
          string data = test.Substring(idx + 1, endIdx - idx + 1);
          break;
        }
        idx--;
      }

你有更好的逻辑吗?

我可以按空格拆分字符串,并在"mm"插槽之前拾取条目。

谢谢

用于捕获数字字段的正则表达式

好吧,您可以使用正则表达式进行积极的展望

's['d.]+(?='s+mm)

喜欢这个

string test = "The length is 32.00 mm";
Console.WriteLine(Regex.Match(test, @"'s['d.]+(?='s+mm)").Value);

演示