<chapter version="1.21" id="chapter_01">
<p>before</p>
<article role="main">text content</article>
<p>after</p>
</chapter>
[\s\S]*?(<article role="main">[\s\S]*<\/article>)[\s\S]*
на $1
в документе осталось только это: <article role="main">text content</article>
[\s\S]*?(<article role="main">[\s\S]*<\/article>)[\s\S]*
[\s\S]*?(<article>[\s\S]*<\/article>)[\s\S]*
, вроде не падает. Можете затестить: ставите sublime text 3, включаете его, нажимаете Ctrl+Shift+F, в поле Find копируете [\s\S]*?(<article>[\s\S]*<\/article>)[\s\S]*
, справа от поля Where открываете менюшку, нажимаете Add folder и добавляете вашу папку. В поле Replace пишете $1
, нажимаете справа Replace. Отпишитесь о результатах, если не трудно. Для теста желательно использовать копию проекта, конечно, а не оригинал.