• dactylotheca
    link
    fedilink
    English
    769 months ago

    Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

    • qaz
      link
      fedilink
      269 months ago

      Regex really isn’t that bad when using named capture groups.

      • dactylotheca
        link
        fedilink
        English
        179 months ago

        Oh yeah they definitely have uses, but there’s a real tendency for people to go a bit crazy with them. Complex regexen aren’t exactly readable, there’s all kinds of fun performance gotchas, there’s sometimes other tools/algorithms that are more suitable for the task, and sometimes people try to use them to eg. parse HTML because they don’t know that it is literally impossible to use regular expressions to parse languages that aren’t regular

          • dactylotheca
            link
            fedilink
            English
            7
            edit-2
            9 months ago

            Oh yeah, extensions which make them non-regular definitely can make it possible, but just because it’s now somewhat possible with some regex engines doesn’t mean it’s a good idea

        • @FooBarrington@lemmy.world
          link
          fedilink
          59 months ago

          I’ve once written a JS decompiler (de-bundler?) using ~150 regex for step-wise transformations. Worked surprisingly well!

        • @bleistift2@sopuli.xyz
          link
          fedilink
          English
          39 months ago

          it is literally impossible to use regular expressions to parse languages that aren’t regular

          It’s impossible to parse the whole syntax tree, but that doesn’t mean you can’t get the subset you’re interested in.

    • @MashedTech@lemmy.world
      link
      fedilink
      29 months ago

      I learned Regex once and now it just works. Only problem for me is using MacOS so the Regex flavors aren’t consistent. But once I sort that, it’s smooth sailing.

  • @AnarchistArtificer@slrpnk.net
    link
    fedilink
    English
    479 months ago

    Regex feels distinctly eldritch to me. Like, a lot of computing knowledge feels like magic, but regex feels like the kind of magic you get by consorting with dark forces

    • @frezik@midwest.social
      link
      fedilink
      2
      edit-2
      9 months ago

      I don’t. It may look less like line noise, but it doesn’t unravel the underlying complexity of what it does. It’s just wordier without being helpful.

      https://www.wumpus-cave.net/post/2022/06/2022-06-06-how-to-write-regexes-that-are-almost-readable/index.html

      Edit: also, these alternative syntaxes tend to make some easy cases easy, but they have no idea what to do with more complicated cases. Try making nested capture groups with these, for instance. It gets messy fast.

      • @JoeyJoeJoeJr@lemmy.ml
        link
        fedilink
        79 months ago

        it doesn’t unravel the underlying complexity of what it does… these alternative syntaxes tend to make some easy cases easy, but they have no idea what to do with more complicated cases

        This can be said of any higher-level language, or API. There is always a cost to abstraction. Binary -> Assembly -> C -> Python. As you go up that chain, many things get easier, but some things become impossible. You always have the option to drop down, though, and these regex tools are no different. Software development, sysops, devops, etc are full of compromises like this.

        • ☆ Yσɠƚԋσʂ ☆
          link
          fedilink
          29 months ago

          Exactly, at the end of the day it’s about using the right tool for the job. Code that’s clear and declarative is easier to maintain, so it makes sense to default to it, but nothing stops you from using low level constructs if you really need to.

  • @itsathursday@lemmy.world
    link
    fedilink
    169 months ago

    Named groups are nice but can I please define a group more than once because maybe I want to group my data and consolidate values in a logical way without you complaining I have already used a group previously. I know I did, I’m the one telling you, now capture it twice!