Не выполняйте синтаксический анализ HTML с помощью regex, а используйте соответствующий синтаксический анализатор HTML.
Согласно теории компиляции, HTML не может быть проанализирован с помощью regex на основе конечного автомата . В связи с иерархическим построением HTML необходимо использовать pushdown automaton и манипулировать грамматикой LALR с помощью инструмента, такого как YACC .
вместо этого следует использовать правильный инструмент для правильной работы.
... и это задание для xmllint :
по последовательностям сопоставления :
string="Sorcery"
xmllint --html --xpath "//p[contains(text(), '$string')]/text()" file_or_URL
по узлу N < р >
, где N здесь 1:
xmllint --html --xpath "//p[1]/text()" file_or_URL
Проверьте https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags
-121--86094-#!/usr/bin/env xdg-open
[Desktop Entry]
Name=argus
Exec=gnome-terminal -e "sh -c 'argus -h; bash'"
TryExec=argus
Type=Application
Categories=System;Security;X-SecurityLab;X-Reconnaissance;
Это наиболее точно соответствует поведению. Он может быть улучшен тем, кто знает argus лучше, чем я