• Skullgrid@lemmy.world
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    8 days ago

    I suppose you could write functions like, startswith, endswith, alpha(4), or something like that,

    yes.

    but in the end, is that better?

    YES.

    startswith('text');
    lengthMustBe(5);
    onlyContain(CHARSETS.ALPHANUMERICS); 
    endswith('text');
    

    is much more legible than []],[.<{}>,]‘text’[[]]][][)()(a-z,0-9){}{><}<>{}‘text’{}][][

    • BassTurd@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      8 days ago

      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.

      • frezik@midwest.social
        link
        fedilink
        arrow-up
        2
        ·
        8 days ago

        Exactly. It’s a lot like Java to me. Looks readable on the surface, but it’s actually adding a bunch of crap you don’t need and does not help anything.

        They also have to implement a long list of features. These projects tend to focus on the handful of features the authors specifically use, and the rest get sent by the wayside. Taking the Melody language that was mentioned in another message, it hasn’t even fully implemented [^A] or [abc]. We’re not even talking about somewhat obscure stuff like zero width assertions or lookaheads. These are very basic.