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;
Ответы
Ответ 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, где используется десятичная цифра.