(?<!\d)\d+\.\d+ should match the numbers at the end of the lines and yet it won’t. What am I doing wrong?

  • tetris11@lemmy.ml
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    3 months ago

    To put this into easier form:

    (nota digit) (1ormore digit) (literal dot) (1ormore digit)

    As far as I can see in that text, none of them end with "5.4” or "3.6” or "0.0”, so no your regex wont work

    Maybe change the middle " \d+" into “\d*” , or surround the “\d+\.” with a question mark group?

    • a14o@feddit.org
      link
      fedilink
      arrow-up
      5
      ·
      3 months ago

      surround the “\d+.” with a question mark group?

      If you’re expecting decimals, that’s the preferred solution:

      (?<!\d)(\d+\.)?\d+(?=\s*$)

      Otherwise you could do simply

      (?<!\d)\d+(?=\s*$)

      I added the lookahead (?=\s*$) to match digits at the end of the line only with possible trailing spaces.

    • sabreW4K3@lazysoci.alOP
      link
      fedilink
      arrow-up
      3
      ·
      3 months ago

      Thank you. Every time someone shows me something regarding regex, I feel like I’m getting lessons from a deity.

      You actually helped me out lots. I switched it to (?<!\d)\.*\d{1}+ thanks to your comment and it kinda did the job, so thank you.

  • bizdelnick@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    3 months ago

    What am I doing wrong?

    Not specifying the regex engine you use, first of all. Second, also describe what you mean by numbers that you want to match.

    • sabreW4K3@lazysoci.alOP
      link
      fedilink
      arrow-up
      1
      ·
      3 months ago

      Not specifying the regex engine you use

      Sorry, I have no clue.

      Second, also describe what you mean by numbers that you want to match.

      So you see in the screenshot, there’s a random number at the end of some of the lines, I’m trying to match that.

      • bizdelnick@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        3 months ago

        BTW if you don’t need to capture the number, \d$ should match what you need. If regex syntax supports \d, of course.

      • bizdelnick@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        3 months ago

        Sorry, I have no clue.

        What do you use to apply your regex? Programming language, library, command line tool etc.

        there’s a random number at the end of some of the lines, I’m trying to match that.

        Is it decimal? One digit or multiple digits? Natural, rational?

  • Diluvian@infosec.pub
    link
    fedilink
    English
    arrow-up
    1
    ·
    13 days ago

    (?<!\d) -> Not sure why you’re doing this.

    \d+\. -> Look for at one or more digits followed by a period. None of the sentences have numbers before the period, and if the previous section didn’t exclude them, this would.

    \.\d+ -> look for a period followed immediately by one or more numbers. This should get most of the trailing 0’s, but you’ll miss the ones on their own newline and following a quotations mark.

    \.0\ -> If you only have a single character you’d like to remove, there’s no harm in enumerating it.