Вот как это делается.
Если вы думаете, что у вас возникнут проблемы, когда ваш html / xml имеет
конструкции, которые могут скрыть разметку, например Комментарии или CDATA (или что-то еще)
и вы беспокоитесь об этом, дайте мне знать, и я исправлю это
регулярное выражение с парой функций, чтобы поглотить этих плохих парней.
(?:<(?:(FormattingRule)(?:\s+(?>"[\S\s]*?"|'[\S\s]*?'|(?:(?!/>)[^>])?)+)?\s*>)(?:(?!</\1\s*>)[\S\s])*?EdtJobEmpId(?:[\S\s]*?</\1\s*>|(*SKIP)(*FAIL)))
https://regex101.com/r/Plih3R/1
Версия для чтения
(?:
<
(?:
( # (1 start), End tag req'd
FormattingRule
) # (1 end)
(?:
\s+
(?>
" [\S\s]*? "
| ' [\S\s]*? '
| (?:
(?! /> )
[^>]
)?
)+
)?
\s* >
)
(?:
(?! </ \1 \s* > )
[\S\s]
)*?
EdtJobEmpId
(?:
[\S\s]*? </ \1 \s* >
|
(*SKIP)(*FAIL)
)
)