FIND FIRST COMMA IN STRING, THEN EXTRACT VALUE BETWEEN SPACES

Jeet Verma

Total Post:110

Points:776
Posted by  Jeet Verma
C# 
 1465  View(s)
Ratings:
Rate this:

I'm extracting rows from a txt file.

This row contains values like this:

 DESCRIPTION 1    1.234,00    15.980,00 [etc.]

I would like to extract these values (I mean only numeric values).

So I thought to find first comma, execute a for cycle backwards until first White space and execute a For cycle forward for decimals digits. The I should go to the second comma and perform these cycles again.

Can you suggest some code that could be useful for my solution?

  1. marcel ethan

    Post:105

    Points:735
    Re: Find first comma in string, then extract value between spaces

    From your description, if you just need the decimal number before the comma, then you can do this with a pretty simple regex:

    Dim s = "DESCRIPTION 1    1.234,00    15.980,00"

    Dim pattern = "\d+(\.\d+)?,\d+"

    Dim matches = System.Text.RegularExpressions.Regex.Matches(s, pattern)

     

    For Each match in matches

        Console.WriteLine(match.Value)

    Next

     

    'Outputs:

    '

    '1.234,00

    '15.980,00


    Here's a quick breakdown of the regex:

    \d+ - \d is shorthand for [0-9], which just means "any numeric character". The + just indicates "one or more"

    \. - this just matches a period character.

    , - this just matches a comma.

    ( ... ) - parentheses just creates a group (think of it as a sub-regex)

    ? - question marks mean that the previous item is optional. In this case, that means that the group matching (\.\d+)? is optional, which allows you to match both 0.000,00 and 0,00

    In that regex, if the comma and period are optional, then you can add a ? after them.

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!