Bruno Henri
Bruno Henri

Reputation: 373

C# regex get just number in specific condition

I want to get number in string at specific position, and i cant do this.

example:

STRING:

180 MATTHEW SANDLER DON 30.00 1.361,67 00

181 JOHN 30.00 5.987,00 99

182 LUCY P. 30.00 3.888,98 71

I want to return on each line just the numbers:

1.361,67

5.987,00

3.888,98

Unfortunately the name has a variable number of spaces, otherwise it would be a simple string.Split(' ') problem

Does anyone know how to do it, please?

Upvotes: 0

Views: 65

Answers (2)

Tim Biegeleisen
Tim Biegeleisen

Reputation: 522741

If we conceptually define the term you want to match as being the last term before the final two (or more?) numbers at the end of each line, then we can use the following regex pattern:

(\d+\.\d+,\d+) \d+$

The quantity in parenthesis will be captured and made available after the regex has run in C#.

string input = "180 MATTHEW SANDLER DON 30.00 1.361,67 00";
var groups = Regex.Match(input,@"(\d+\.\d+,\d+) \d+$").Groups;
var x1 = groups[1].Value;
Console.WriteLine(x1);

Demo here:

Rextester

Upvotes: 1

l'L'l
l'L'l

Reputation: 47282

The following pattern should match the values in your example:

\b\S*,\d+\b

Example:

http://rextester.com/LZVQN62207

Upvotes: 1

Related Questions