0

以下の入力例のように、コンマまたはセミコロンなしでテキストのみを取得する必要があるという点で、文字列値があります。

<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE> 

私の出力は次のようになります。

OR 0001 01 SCEM_02 PC

(つまり) コンマ、セミコロン、コロンなし。

これには、どの機能を使用する必要がありますか? お返事を待って。

よろしく、 ジョイ

4

2 に答える 2

1

正規表現を使用する Python では、

import re
re.findall(r'.*(:[\w]+,?)+', "<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE> ");

それが役立つことを願っています!!!

于 2012-06-26T05:15:52.260 に答える
0

解決策はワンライナーです:

input.replaceAll("(^|,|;).*?(:(?!,)|$)", " ").trim();

それは正規表現を正しくすることの問題です。この正規表現は基本的に、「開始/終了の問題を考慮して、コンマ/セミコロンとコロンの間のすべて」をスペースに置き換えます

ここにいくつかのテストコードがあります:

public static void main( String[] args ) {
    String input = "<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE>";
    input = input.replaceAll("(^|,|;).*?(:(?!,)|$)", " ").trim();
    System.out.println( input);
}

出力:

OR 0001 01 SCEM_02 PC
于 2012-06-27T01:06:34.350 に答える