HomeSearch

C# Regex.Split, Get Numbers From String

Use Regex.Split and the non-digit Regex metacharacter to get numbers from a string.
Regex.Split, numbers. Regex.Split can extract numbers from strings. We get all the numbers that are found in a string. Ideal here is the Regex.Split method with a delimiter code.Regex.Split
Notes, positive ints. We describe an effective way to get all positive ints. For floating point numbers, or negative numbers, another solution will be needed.
An example. The const input string has 4 numbers in it: they are one or two digits long. To acquire the numbers, we use the format string @"\D+" in the Regex.Split method.

Pattern: The pattern "\D+" indicates that we want to use any number of one or more non-digit characters as a delimiter.

Using: Please notice how the System.Text.RegularExpressions namespace is included.

Regex

Return: The Regex.Split method will return the numbers in string form. The result array may also contain empty strings.

Info: To avoid parsing errors, we use the string.IsNullOrEmpty method. Finally, we invoke the int.Parse method to get integers.

IsNullOrEmpty, IsNullOrWhiteSpaceParse
C# program that uses Regex.Split on string using System; using System.Text.RegularExpressions; class Program { static void Main() { const string input = "There are 4 numbers in this string: 40, 30, and 10."; // Split on one or more non-digit characters. string[] numbers = Regex.Split(input, @"\D+"); foreach (string value in numbers) { if (!string.IsNullOrEmpty(value)) { int i = int.Parse(value); Console.WriteLine("Number: {0}", i); } } } } Output Number: 4 Number: 40 Number: 30 Number: 10 Pattern: \D Non-digit char. + 1 or more of char.
Notes, pattern. For handling numbers in regular expressions, the "\d" and "\D" codes are important. The lowercase "d" means digit character. The uppercase means non-digit char.
A summary. We extracted integers inside a string. And we converted the results to ints. The Regex.Split method is useful for this purpose. It allows flexible, complex delimiters.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
Home
Dot Net Perls