2016-10-19 3 views
1

Я работаю на большом XML-файл с единицами следующей структуры:регулярного выражения вернуть весь текст между тегами, если текст содержит специальные символы (Notepad ++)

<TrU> 
<CrD>16122013, 11:54:13 
<CrU>IK 
<ChD>16122013, 11:54:13 
<ChU>IK 
<Seg L=EN-GB>some text in English 
<Seg L=RU-RU>some text in Russian 
</TrU> 

мне нужно регулярное выражение, которое будет найти такие полные структуры, только если между тегами <TrU> и </TrU> происходит любое из следующих символов:

IEE

выражение найти такие структуры без специфического критериум характера является: <TrU>.*?</TrU>

Я изменил его в: <TrU>.*?[íèé].*?</TrU>

но жаден и находит множественные neighbourings единиц в то время, как правило, только один из которых содержит один из требуемых символов.

+0

насчет XML Tools> XSL Transformations? Вы можете удалить все узлы, которые не являются «TrU» или «TrU», но не содержат указанных символов. –

ответ

0

Попробуйте это:

<TrU>(?:(?!<TrU).)*?[íèé].*?<\/TrU> 

Испытано в Notepad ++

Убедитесь, что точка соответствует новой строки проверяется

Explanation

+0

Большое спасибо, это действительно работает! –

+0

как я могу принять? Я уже поддержал ответ, но моя репутация недостаточно хороша для моего показа. –