337
submitted 3 weeks ago* (last edited 3 weeks ago) by NateNate60@lemmy.world to c/programmerhumor@lemmy.ml

^.?$|^(..+?)\1+$

Matches strings of any character repeated a non-prime number of times

https://www.youtube.com/watch?v=5vbk0TwkokM

you are viewing a single comment's thread
view the rest of the comments
[-] RegalPotoo@lemmy.world 10 points 3 weeks ago* (last edited 3 weeks ago)

Something like

!"A line with exactly 0 or 1 characters, or a line with a sequence of 1 or 3 or more characters, repeated at least twice"!<

[-] naonintendois@programming.dev 8 points 3 weeks ago

You're misreading the ..+? part. That means 2 or more characters, non greedy.

[-] NateNate60@lemmy.world 3 points 3 weeks ago

It's a line with a sequence of two or more characters repeated at least twice.

[-] MummifiedClient5000@feddit.dk 4 points 3 weeks ago

Only the part after the pipe character. The pipe character works as an "or" operator. RegalPotoo is right.

[-] NateNate60@lemmy.world 3 points 3 weeks ago

They said—

A line with exactly 0 or 1 characters, or a line with a sequence of 1 or 3 or more characters, repeated at least twice

Note—

...or a line with a sequence of 1 or 3 or more characters, repeated at least twice

It should be—

...or a line with a sequence of 2 or more characters, repeated at least twice

The regex in the post will match "abab". Their original description (line 2 of this comment) will not match "abab".

[-] MummifiedClient5000@feddit.dk 4 points 3 weeks ago

I agree, you're right about the part after the pipe and RegalPotoo's explanation was not entirely correct.

this post was submitted on 31 Oct 2024
337 points (98.0% liked)

Programmer Humor

32571 readers
335 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS