- cross-posted to:
- programmer_humor@programming.dev
- cross-posted to:
- programmer_humor@programming.dev
Top notch shitpost. Extra credit for perl!
Perl being the first language I started learning, this makes me happy. Oh shit, press the button for the dog!
Oh boy… I like perl but as a first language, that musta been rough…
Why waste time doing any matching if wantarray == false? Just do:
if(!wantarray) { return 1; }Before any matching happens, or if you only want one return statement set the value of a variable in if(!wantarray)/elsif(regex) and return that variable at the end.
Im predicting AI. Alternatively random screenshot from Google, which is probably AI.
That third one is also sad
The past tense of regex is regrets.
Must be bad at regular expressions. I generally get far more than one extra problem when using them.
No, you see, the RG was to solve the problems
Solve the problem of not having enough problems? 🤔
*sees rfc822 in a regular expression*
I bet that’s the email specification. That’s probably an email address parser.
*checks*
Perhaps worth adding that verifying an e-mail address via regex is difficult and not actually that useful.
Difficult, because a lot of e-mail addresses are syntactically valid. For example,
a@bis valid. As isa@1.2.3.4. As is"spaces are cool 😎"(with the quotes).And it’s not that useful, because you need to send out an e-mail either way, if you want to know that it’s the correct address and the user has access to it. A regex can’t catch a typo in the actual words, for example.
If you want a basic sanity check to catch when the user types their name into the e-mail field, then you can require that it contains an
and, if you want, that there’s at least one symbol before and after.
If you go beyond that, you either need a massive regex or you’re going to lock out users with unusual e-mail addresses.Yep, these email address validation tools are the bane of my existence. I use a non-typical TLD and it sometimes gets flagged as invalid because it’s not .com, .net, or .org.
I wrote one parser that checked the top level domain against a txt of all top level domains downloaded from Icann once a day. Was kind of proud of that one.
That’s a pretty clever way of doing it!
I’ve found many systems don’t work with the .company TLD!
or some u.s.-centric ones that break with .co.uk
I never understood why are people scared of regular expressions. I love them and they can be quite usefull.
Here is an example of one regex I wrote recently - it is used in replace:
(?:^-\[[^[]+\]$| ?\[.+?\] ?)I could use a use case. RegEx are pretty “what does it mean” without what it’s targeted on.
I have mentioned it in the comments below, but to explain it simply, I just wanted to remove all the bracketed text + a dash if there is no other text.
I started using regex because i need to rename a lot of my pirated media from “this_episode_uploaded_byXxXSuperEl33tSqwaaadXxX_MLP_s04_Episode7_bats.mkv”
and linux deals with it very nicely. Much better than manual, anyways
Must be ironu
that feels overcomplicated. you’re always matching on square brackets anyway, so why make it a conditional? and one case not allowing spaces seems inconsistent…
It may feel like it, but I needed to handle all the edge cases. But if you think it can be simplified, I’m willing to learn.
without knowing the format of the input data or what flags you’re using it’s obviously a bit harder to reason about, but since you’re doing a replace i assume you don’t care about the content of the bracketed text, you just want to remove it. the way i’m reading yours is
(?: # don't store this group # either ^ # start of line -\[[^[]+\] # a -, a [ followed by at least one non-[, then a ] (passing one is fine) $ # end of line | # or ? # maybe one space \[.+?\] # a [ followed by at least one character, then a ] (don't pass any) ? # maybe one space )since the two branches are almost identical, you can probably compact it into
-?\s*\[.+?\]\s*. maybe a dash, then maybe some space, then angle brackets around something, then maybe more space.You are right. It is just removal of the bracketed text. The input is multi-line string, so only flag used was the multi-line mode.
These are string lines I have encountered and how I wanted to change them:
1. "[...]" -> "" 2. "-[...]" -> "" 3. "-[...] text" -> "-text" 4. "-text [...]" -> "-text" 5. "[...] text [...]" -> "text" 6. "-[...] text [...]" -> "-text"The main point is that I needed to remove the dash only if there is no other text on the line.
I have tried the regex you are suggesting at the beginning, but it failed at points (3) and (6).
EDIT: It just occurred to me that the first line of my comment sounds like stupid AI. 🤦
aaah i see. then a conditional makes sense if you need to one-shot it. personally i would have run it through twice but i know there are systems that don’t allow that.
Practice safe hex as they say…
What the hell kind of disgusting language is that? I need to know so I can avoid it at all costs.
The post is written in English 😔
Not sure if joking, but that looks like Perl.
I haven’t used it in like 20 years. There is a way to write it so that it’s not insane. You can write it kind of like C. But no one does that. So you end up looking at this crap.
It’s been referred to as a “write-only” language, as it’s not readable.
I know the reference from my perl days but I beg to differ. I wrote well-structured perl code with plenty of comments. I like to believe those projects of mine could be useful to someone else.
https://en.wikipedia.org/wiki/Regular_expression
You can use it in any language.
Everyone loves perl though! /s

fucking perl! Loved it…
Panting can also be a sign of stress with dogs






