Я шукаю регулярний вираз, де я можу отримати частину рядка, що відповідає критеріям.
пошук рядка "Довжина 32,00 мм".
Я хотів би отримати "32,00". В основному перше числове значення перед "мм". таким чином, це може зробити так:
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--;
}
У вас є краща логіка?
Я можу розділити рядок на пробіл і забрати запис перед слотом "мм".
Дякую,
Відповіді:
2 для відповіді № 1Ну, ви можете використовувати регулярний вираз з позитивним lookahead
s[d.]+(?=s+mm)
Подобається це
string test = "The length is 32.00 mm";
Console.WriteLine(Regex.Match(test, @"s[d.]+(?=s+mm)").Value);