Подтвердить что ты не робот

Regex получает NUMBER только из String

Я получаю "7+" или "5+" или "+5" из XML и хочу извлечь только число из строки с помощью Regex. например, функция Regex.Match()

        stringThatHaveCharacters = stringThatHaveCharacters.Trim();
        Match m = Regex.Match(stringThatHaveCharacters, "WHAT I USE HERE");
        int number = Convert.ToInt32(m.Value);
        return number;
4b9b3361

Ответ 1

\d+

\d представляет любую цифру, + для одного или нескольких. Если вы хотите также набрать отрицательные числа, вы можете использовать -?\d+.

Обратите внимание, что в качестве строки он должен быть представлен в С# как "\\d+" или @"\d+"

Ответ 2

Ответы выше замечательны. Если вам нужна синтаксическая разборка всех чисел из строки, несущей последовательность, то может быть оказана некоторая помощь:

string input = "1-205-330-2342";
string result = Regex.Replace(input, @"[^\d]", "");
Console.WriteLine(result); // >> 12053302342

Ответ 3

Либо [0-9], либо \d 1 должно хватить, если вам нужна только одна цифра. Добавьте +, если вам нужно больше.


1 Семантика немного отличается, поскольку \d потенциально соответствует любой десятичной цифре в любом script, где используется десятичная цифра.