我正在寻找一个正则表达式,我可以提取符合条件的字符串部分。
字符串查找"长度为32.00 mm"。
我希望能够得到" 32.00"。基本上是"之前的第一个数值。 mm"。以某种方式,可以这样做:
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"之前选择条目。插槽。
谢谢,
答案 0 :(得分:2)
好吧,你可以使用正向前瞻的正则表达式
\s[\d.]+(?=\s+mm)
喜欢这个
string test = "The length is 32.00 mm";
Console.WriteLine(Regex.Match(test, @"\s[\d.]+(?=\s+mm)").Value);