How do you think that would look? Regex isn’t particularly complicated, just a bit to remember. I’m trying to picture how you would represent a regex expression in a higher level language. I think one of its biggest benefits is the ability to shove so much information into a random looking string. I suppose you could write functions like, startswith, endswith, alpha(4), or something like that, but in the end, is that better?
The “something” is where the regex goes. For simple cases contains by itself does just fine, but for almost anything kind of dynamic input, it’s going to not be capable of what regex does.
There’s a built-in feature that Perl has that only a few of the languages claiming PCRE have actually done, and it makes things a lot more readable. The /x modifier lets you put in whitespace and comments. That alone helps a lot if you stick to good indentation practices.
If all other code was written like an obfuscated C contest, it would be horrible. For some reason, we put up with this on regex, and we don’t have to.
Assuming “text” in your example is a placeholder for a 5 digit alpha string, it can be written like this in regex: /[a-zA-Z0-9]{5}/
If ”text" is literal, then your statement is impossible.
I think that when it gets to more complex expressions like a phone number with country code that accepts different formats, the verbosity of a higher level language will be more confusing, or at least more difficult to take in quickly.
How do you think that would look? Regex isn’t particularly complicated, just a bit to remember. I’m trying to picture how you would represent a regex expression in a higher level language. I think one of its biggest benefits is the ability to shove so much information into a random looking string. I suppose you could write functions like, startswith, endswith, alpha(4), or something like that, but in the end, is that better?
string.contains("something")
Just do that repeatedly
The “something” is where the regex goes. For simple cases contains by itself does just fine, but for almost anything kind of dynamic input, it’s going to not be capable of what regex does.
People have unironically done that. No, it isn’t better. The fundamental mental model is the same.
I honestly think it can be a lot more readable, especially when the regex would have been in the thousands of characters.
There’s a built-in feature that Perl has that only a few of the languages claiming PCRE have actually done, and it makes things a lot more readable. The
/x
modifier lets you put in whitespace and comments. That alone helps a lot if you stick to good indentation practices.If all other code was written like an obfuscated C contest, it would be horrible. For some reason, we put up with this on regex, and we don’t have to.
https://wumpus-cave.net/post/2022/06/2022-06-06-how-to-write-regexes-that-are-almost-readable/index.html
I want to see their unironic attempts, maybe they’re useful to me at least if they’re not better.
It’s not the fundemental model that I have a problem with for Regex, it’s the fucking brainfuck tier syntax
Here’s one example
fucking SOLD
yes.
YES.
startswith('text'); lengthMustBe(5); onlyContain(CHARSETS.ALPHANUMERICS); endswith('text');
is much more legible than []],[.<{}>,]‘text’[[]]][][)()(a-z,0-9){}{><}<>{}‘text’{}][][
Assuming “text” in your example is a placeholder for a 5 digit alpha string, it can be written like this in regex: /[a-zA-Z0-9]{5}/
If ”text" is literal, then your statement is impossible.
I think that when it gets to more complex expressions like a phone number with country code that accepts different formats, the verbosity of a higher level language will be more confusing, or at least more difficult to take in quickly.