Convert.ToDouble нечисловая строка - PullRequest
0 голосов
/ 03 ноября 2010

Я хочу извлечь номер из строки, которая может содержать нечисловые символы

Я думаю Convert.ToDouble(Regex.Replace(data[i].ToString(), @"ANSWER HERE", ""));

Пример строки: "wd123.321dw" Хочу получить 123,321 из этого.

Также для негативов: "we-123.321ew" для -123,321

Есть какие-нибудь подсказки?

Ответы [ 3 ]

4 голосов
/ 03 ноября 2010

Как то так?

        string n = "wd123.321dw";
        var regNumber = new Regex(@"\-?\d+\.?\d+");

        var match = regNumber.Match(n);
        if ( match.Success )
        {
            double d;
            if ( Double.TryParse(match.Value, out d) )
            {
                Console.WriteLine("The number is: {0}",d);
            }
        }
1 голос
/ 03 ноября 2010
double d_val = Convert.ToDouble(Regex.Replace(data[i].ToString(), @"[^0-9\.\-]", ""));
0 голосов
/ 03 ноября 2010

Попробуйте это как регулярное выражение:

"0+" + Regex.Escape(CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator) + "0+"

При этом будет использоваться десятичный разделитель текущих региональных настроек Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...