2016-11-02 7 views
0

Я использую последнюю и самую лучшую версию NotePad ++. Возможно ли, чтобы RegEx удалял весь текст и теги, которые мне не нужны, и оставлять только текст и теги, которые мне нужны? Теги мне нужно остаться выглядеть следующим образом:RegEx для удаления всех данных XML за пределами указанных тегов

<warning>I need this text to remain intact together with accompanying tags.</warning> 

Там должно быть около 500 из этих предупредительных пар тегов, вложенных в различных уровнях XML. Я бы хотел, чтобы RegEx удалял все данные, которые существуют вне этих тегов WARNING, но не сами теги предупреждений открытия и закрытия или текст в тегах. Ниже приведена четыре различных вариаций RegEx я тестировал, и все они устраняют текст, расположенный между тегами предупреждения после выполнения Найти & Заменить операцию поэтому нет помощи:

<warning>[^<>]+</warning> 

<warning>[^>]+</warning> 

<warning>(.+?)</warning> 

<warning>.*?</warning> 

Я бы чрезвычайно признателен за любую помощь, которая поможет мне в разработке RegEx, который будет выполнять задачу очистки данных, которую мне нужно выполнить.

+1

Можете ли вы дать пример текстового фрагмента? Это не то, что вы действительно должны делать с регулярными выражениями. –

ответ

0

Я использую notepad ++ regex find и replace below, кажется, работает для меня. Не забудьте выбрать регулярное выражение. Найдите и замените оба регулярных выражения ниже пустым. Требуют 2 шага, хотя, не совершенен

первой замены удалить все строки, которые не StartsWith предупреждение

второй заменить удалить все пустые строки оставив только строки с предупреждения

^(?!\s*?<warning>).*?$ 
^\s* 
+0

Skycc, спасибо за сообщение. Я проверил его и удалил все данные. Он не оставляет тегов WARNING или текст в тегах WARNING. – Matrix

+0

Рад, что он решает вашу проблему, вы можете принять ответ или проголосовать за полезный ответ, есть флажок слева, чтобы ответить – Skycc