• Black616Angel@feddit.de
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    Not only replacing didn’t work. I did it as a regex, but Rusts regex crate only supports non-overlapping matches.

    • Faresh@lemmy.ml
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      Python’s re also only supports non-overlapping matches and only one direction, so what I did was

      spoiler

      I looked for the first digit/word using the regex. Then for the last digit/word, I inverted the string and the regex (so I was matching the words eno, owt, eerht, etc.) and took the first occurence, and inverted that in case it was a word, and then I had my last digit. I just had to pay attention to only include the |\d after inverting the regex, since d\| is not right.

      There are probably more elegant ways, but I couldn’t come up with anything as simple as this.

      • dukk@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Oh, cool, I did pretty much the same thing, just finding the words manually instead (didn’t want to use any external libraries, so I just wrote a function to search for me. Haskell doesn’t have much for OOT B functionality).