2012-04-03 15 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>

は、私は、expr変更(またはマージ)してください:(<Parag.*?>)(</Parag.*?>)

感謝のを。

+1

質問のタイトルを変更してください。 –

+0

あなたのXMLは形式が間違っているのか、それとも入力ミスですか?例えばParag 7 Levは "Parag7 Lev =" That ">でしょうか? – Adam

+0

一般に、正規表現を使ってXMLを認識/変更するのは悪い考えです。単純に正規表現は...まあ普通ですから。 XMLなどの文脈自由言語よりも表現力が劣ります。したがって、XML要素をネストするとすぐに正規表現は役に立たなくなります。単純なケースでは正規表現を使うことができますが、最初からXSLを使う方が良いでしょう。 – JohnnyK

答えて

0

あなたのパターンは次のようになります。

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

テキストあなたはパターンがendlines上でマッチングできるようにする必要があるかもしれないあなたのパターン・ツールによってはグループ1になります。

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

2番目の質問:

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

ありがとうございます。 2番目の質問に私を助けてください。 –

+0

更新された回答を参照してください。 – GavinCattell

+0

2番目の質問の場合、2つの状態(と)を含む1つのパターンを取得してください –

関連する問題