• @[email protected]
    link
    fedilink
    2910 months ago

    I use regex in SQL to parse HTML stored in a database. It can’t universally parse and validate every HTML document, but it can still be used to find specific data like pulling out every link.

    • @BluesF
      link
      1510 months ago

      I don’t think that using regex to basically do regex stuff on strings that happen to also be HTML really counts as parsing HTML

      • @[email protected]
        link
        fedilink
        5
        edit-2
        10 months ago

        I guess it depends on your definition of “parse”, but let me tell you it’s still very painful to deal with things like attributes appearing in any order inside of a tag so I definitely am not advocating to use regex to “read” (or whatever you want to call it) HTML.

        • @fuckwit_mcbumcrumble
          link
          3
          edit-2
          10 months ago

          My regex at work is full of (<[^>]+\s*){0,5} because we don’t care about 90 percent of the attributes. All we care is it’s class=“data I want” and eventually take me to that data.

    • @hperrin
      link
      11
      edit-2
      10 months ago

      Technically, regex can’t pull out every link in an HTML document without potentially pulling fake links.

      Take this example (using curly braces instead of angle brackets, because html is valid markdown):

      {template id="link-template"}
          {a href="javascript:void(0);"}link{/a}
      {/template}
      

      That’s perfectly valid HTML, but you wouldn’t want to pull that link out, and POSIX regex can’t really avoid it. At least not with just a single regex. Imagine a link nested within like 3 template tags.

      • @[email protected]
        link
        fedilink
        310 months ago

        Yes, I said in my original comment that it can’t universally parse and validate every HTML document. If they’re older pages that don’t do lots of crazy formatting then it’s not too hard to use regex as a first pass then take a second pass through the results to weed out the odd stuff.

        • @hperrin
          link
          8
          edit-2
          10 months ago

          I would argue that that is not parsing. That’s just pattern matching. For something to be parsing a document, it would have to have some “understanding” of the structure of the document. Since regex is not powerful enough to correctly “understand” the document, it’s not parsing.