Não analise HTML com regex, em vez disso, use um analisador HTML adequado.
teoria:
De acordo com a teoria de compilação, o HTML não pode ser analisado usando regex com base na máquina de estados finitos . Devido à construção hierárquica do HTML, você precisa usar um autômato de empilhamento e manipular LALR usando ferramentas como YACC .
ferramenta diária realLife © ® ™:
em vez disso, você deve usar uma ferramenta correta para um trabalho correto.
... e é um trabalho para xmllint :
por string matching :
string="Sorcery"
xmllint --html --xpath "//p[contains(text(), '$string')]/text()" file_or_URL
pelo enésimo nó <p>
onde N é 1 aqui:
xmllint --html --xpath "//p[1]/text()" file_or_URL
Verifique se link