this post was submitted on 31 Oct 2024
330 points (97.7% liked)

Programmer Humor

32557 readers
408 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
[–] [email protected] 10 points 3 weeks ago* (last edited 3 weeks 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 8 points 3 weeks ago

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

[–] [email protected] 3 points 3 weeks ago (1 children)

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

[–] [email protected] 4 points 3 weeks ago (1 children)

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

[–] [email protected] 3 points 3 weeks 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".

[–] [email protected] 4 points 3 weeks ago

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