this post was submitted on 31 Oct 2024
325 points (97.4% liked)

Programmer Humor

32375 readers
232 users here now

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

Rules:

founded 5 years ago
MODERATORS
 

^.?$|^(..+?)\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 6 days ago* (last edited 6 days ago) (2 children)

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 6 days ago

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

[–] NateNate60@lemmy.world 3 points 6 days ago (1 children)

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

[–] MummifiedClient5000@feddit.dk 4 points 6 days ago (1 children)

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

[–] NateNate60@lemmy.world 3 points 6 days ago (1 children)

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 6 days ago

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