0

入力ファイルから文字列を解析する必要があります。これらの文字列はHadoopで必要です。問題は、これらの文字列がマークアップタグに含まれていることです。

誰かが私にパターンを提案して、それらを一致させて保存することはできますか

<id>INIcE89C561</id>  <id>INIcE89C560</id>  <id>Q1S5WLipQW2</id>

idタグの間に文字列が必要です。すべてのタグは異なる入力ファイルからのものです。それらを値として使用する必要があります。キーと値のペア。

4

2 に答える 2

3

idタグ間のテキストを取得するには、次のように使用できます。

<id>([^<]*)</id>

次に、最初にキャプチャされたグループ(値)を抽出します。

ただし、一般的に、正規表現はXMLを解析するための最良のオプションではありません。

私が使用することをお勧めする、はるかに適したXMLパーサーがあります。

たとえば、このチュートリアルを見てください。

于 2012-04-30T05:40:55.013 に答える
0

あなたはそのようなものを使ってみることができます:<id>(.*?)</id><id>これは、タグとタグの間のすべての文字と一致する必要があり</id>ます。ただし、問題は、正規表現がキャプチャするテキストのグループが、正規表現がキャプチャする次のテキストのグループによって上書きされる可能性が高いことです。つまり、1日の終わりまでに、一致するテキストの最後のグループしかありません。

最初にこれらを空白文字で分割し(例として投稿したものと同じテキストを取得していると想定)、次に個々のブロックに正規表現を適用することをお勧めします。また、これよりも多くのタグがある場合、正規表現はマークアップ言語から情報を抽出するように正確に設計されていないため、情報を抽出する他の方法を使用することをお勧めします。

于 2012-04-30T05:41:29.483 に答える