• Telorand@reddthat.com
    link
    fedilink
    arrow-up
    42
    arrow-down
    1
    ·
    edit-2
    3 months ago

    Because there’s non-programmers in this community, if you aren’t sure what this means but are too afraid to ask, it’s a Regular Expression that better represents the terms “Linux” and “Unix.”

    Though if we’re going to be that pedantic, it would be [nN][uiI][xX]$. That extra pipe wouldn’t actually do anything in the last example, because regexp picks one character from the set by default.

    And if we want to be really pedantic,

    (?!nix)[nN][uI][xX]$
    

    Would be the most accurate.

    Edit: based on comments, I think…

    (nux|NIX)$
    

    …would be the best. Then you don’t wind up with weird matches with things like UNiX.

    • bigkahuna1986
      link
      fedilink
      arrow-up
      23
      ·
      3 months ago

      We’re talking about Unix so being as pedantic as possible is actually required.

    • thingsiplay@beehaw.org
      link
      fedilink
      arrow-up
      17
      ·
      3 months ago

      Actually *nix isn’t a Regular Expression, because the star operator * requires a preceding character or object to apply to. This is a wildcard for the shell style globbing, where a single star doesn’t require a second object.

      • Telorand@reddthat.com
        link
        fedilink
        arrow-up
        7
        ·
        3 months ago

        Yes, but you can really only do that with single characters, since your first example is an ordered group and the second is an unordered set in a capturing group. The equivalency drops off when you include more characters.

        Plus, you can do things like [a-zA-Z], and you can’t do that with the former example.

        I would imagine there’s a difference in computing overhead, too, but I have no idea which is more performant.

    • exu@feditown.com
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      3 months ago

      *nix is more likely to be a glob, therefore an accurate version would be *n?x

      Edit: global -> glob dang autocorrect

    • jyoskykid@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      3 months ago

      All that effort, when you could’ve just called it LUNIX.

      By the way, does this expression match LUNIX? But if so, won’t it also match Binux or Bunix?

      • Telorand@reddthat.com
        link
        fedilink
        arrow-up
        3
        ·
        3 months ago

        Yep, it would match LUNIX and Binux, but it would not match Bunix because of the negative lookahead.