• aMockTie@piefed.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 hours ago

    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.

  • BiscuityCat@lemmy.world
    link
    fedilink
    arrow-up
    10
    ·
    12 hours ago

    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:

    (?:^-\[[^[]+\]$| ?\[.+?\] ?)
    
    • lime!@feddit.nu
      link
      fedilink
      arrow-up
      1
      ·
      2 hours ago

      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…

  • ignirtoq@feddit.online
    link
    fedilink
    English
    arrow-up
    19
    ·
    18 hours ago

    *sees rfc822 in a regular expression*

    I bet that’s the email specification. That’s probably an email address parser.

    *checks*

    Yep.

    • Ephera@lemmy.ml
      link
      fedilink
      arrow-up
      8
      ·
      12 hours ago

      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@b is valid. As is a@1.2.3.4. As is "spaces are cool 😎"@b (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.

      • naticus@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        10 hours ago

        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.