9
submitted 6 days ago by [email protected] to c/[email protected]

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

you are viewing a single comment's thread
view the rest of the comments
[-] [email protected] 8 points 6 days ago* (last edited 6 days 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?

[-] [email protected] 5 points 6 days 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.

[-] [email protected] 3 points 6 days 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.

[-] [email protected] 2 points 6 days ago

oh nice solution, quite elegant

this post was submitted on 10 Jun 2025
9 points (100.0% liked)

RegEx

408 readers
1 users here now

Welcome to the RegEx community! This is a place where you can learn about and get help with regular expressions

A regular expression is a sequence of characters that specifies a match pattern in text. Theyre usually used for find, or find and replace operations on strings, or for input validation.


founded 2 years ago
MODERATORS