Я пытаюсь извлечь все данные из тегов заголовка в документе Word, преобразованном в HTML (через слово)
У меня есть следующее регулярное выражение:
<(?<Class>h[5|6|7|8])>(?<ListIdentifier>.*?)<span style='font:7.0pt "Times New Roman"'>(?: )+.+</span>(?<Text>.*?)(?:</h[5|6|7|8]>)?
и мой исходный текст выглядит следующим образом
<h5>(1)<span style='font:7.0pt "Times New Roman"'>
</span>The Scheme (planning scheme) has been
prepared in accordance with the <i>asdf </i>(the Act)
as a framework for managing development in a way that advances the purpose of
the Act.</h5>
<h5>(2)<span style='font:7.0pt "Times New Roman"'>
</span>In seeking to achieve this purpose, the planning scheme sets out
the future development in the
planning scheme area over the next 20 years.</h5>
<h5>(3)<span style='font:7.0pt "Times New Roman"'>
</span>While the planning scheme has been prepared with a 20 year horizon, it
will be reviewed periodically in accordance with the Act to ensure that it
responds appropriately to the changes of the community at Local, Regional and State
levels.</h5>
Регулярное выражение работает, однако оно захватывает от первого h5 до последнего или любого другого h6 | 7 | 8.
Я не пытаюсь сделать что-то здесь сложное с данными, мне нужно просто извлечь их, поэтому я бы хотел использовать регулярные выражения, а не использовать html-парсер, в моих примерах было бы справедливо сказать заголовки хорошо сформированы, т.е. hX всегда закрывается hX, а не hY, а внутри заголовков нет заголовков или чего-то подобного.
Я думал добавить? до конца (? :) сделало бы его несжидким, чтобы оно соответствовало только первому экземпляру, а не так много, как могло бы, я что-то здесь упускаю из-за того, как работает жадность?
EDIT:
Регулярное выражение
<(?<Class>h[5-8])>(?<ListIdentifier>.*?)<span style='font:7.0pt "Times New Roman"'>(?: )+.+?</span>(?<Text>.*?)(?:</h[5-8]>)
также, кажется, соответствует
<h6> </h6>
<h6> </h6>
<h6> </h6>
<h6> </h6>
<h5>(1)<span style='font:7.0pt "Times New Roman"'>
</span>Short Title -The planning scheme policy may be cited as PSP No 2. –
Engineering Standards – Road and Drainage Infrastructure.</h5>
так что он включает весь текст, тогда как я хотел бы, чтобы он игнорировал h6s с nbsp, так как у них нет промежутка внутри них