2012-04-03 5 views
-1

моего текста:Пожалуйста, измените свои шаблоны регулярных выражений

<Parag 1 Lev="All"> 
text All 
</Parag1> 
<Parag 2 Lev="That"> 
text That 
</Parag2> 
<Parag 3 Lev="Com"> 
text Com in tag 3 
</Parag3> 
<Parag 4 Lev="All"> 
text All 
</Parag4> 
<Parag 5 Lev="All"> 
text All 
</Parag5> 
<Parag 6 Lev="Com"> 
text Com in tag 6 
</Parag6> 
<Parag 7 Lev="That"> 
text That 
</Parag7> 

1- Как я могу получить текст между тегами с Львом = «Com» с регулярным выражением? например: text Com in tag 3 или text Com in tag 6

Пожалуйста, измените мой Expr: ("Com">)[\d\D]+(</)

2 Как я могу получить метки с регулярным выражением? например: <Parag 1 Lev="All"> или </Parag1> или <Parag 3 Lev="Com"> или </Parag3>

Пожалуйста, измените (или слияния) мои Exprs: (<Parag.*?>)(</Parag.*?>)

Спасибо годов.

+1

Пожалуйста, измените название вопроса. –

+0

Является ли ваш XML означающим искажение, или это опечатка? например должен Parag 7 Лев «Это» ? – Adam

+0

Вообще-то, это плохая идея использовать регулярное выражение для распознавания/изменения XML. Просто потому, что регулярные выражения ... хорошо ... правильные. Они менее выразительны, чем контекстно-свободные языки, такие как XML. Итак, как только вы вставляете элементы XML, ваше регулярное выражение становится бесполезным. Вы можете использовать регулярное выражение для простых случаев, но вам лучше использовать XSL с самого начала. – JohnnyK

ответ

0

Ваш рисунок может быть:

"Com">([^<]+)</ 

Текст будет находиться в группе 1. В зависимости от вашего инструмента шаблона вам могут понадобиться, чтобы сопоставление с образцом над лицевыми линиями:

Pattern.compile("your pattern",Pattern.DOTALL); 

Вторым вопрос:

<Parag([^>]+)>|</Parag([^>]+)> 
+0

Спасибо. пожалуйста, помогите мне на второй вопрос. –

+0

См. Обновленный ответ. – GavinCattell

+0

Для второго вопроса, пожалуйста, введите мне один шаблон, который включает в себя 2 состояния ( и) –

Смежные вопросы