2016-10-05 4 views
0

2つのタグの間にテキストブロックを取得しようとしていますが、いくつかの問題があります。私は区切り文字としてタグを使用して、<file powershell></file>前に次の行に始まるテキストをつかむしようとしている文字列の後の正規表現最大テキスト

<file powershell> 
Windows 6.3 Build 9600 
</file> 

:私のサンプルテキストはこれです。今私は^<file.+>\n<\/file>を使用していますが、それは私にタグを包括的に与えます。私はWindows 6.3 Build 9600だけを取得する必要があります。助けてください?ありがとう!

答えて

0

キャプチャグループを使用して、必要なコンテンツをキャプチャする必要があります。例えば:とにかく

<file.+?>(.*?)<\/file> 

Working demo

、それはあなたがそうあなたが//file/text()または//file[@powershell]/text()仮定PowerShellのようなXMLパーサまたはXPath式を使用する必要がある場合は、XMLを横断したいと思われるだけでなく書式設定属性があります

0

使用ルックアラウンド:

(?<=<file powershell>)[^<]*(?=<\/file>) 

先読み/先読みをアサートしますが、は使用しません。入力 - つまり、マッチの一部にはなりません。

[^<]は、単に改行に一致しないドットの問題を回避します。

+0

opは変数 'file'を使用していますが、look behindは可変長をサポートしていません。 –

+0

@Fed確かに、OPはの次の行から開始して固定テストを求めています。 " – Bohemian