正規表現を使用して文字列をフィールドに分割しようとしていますが、残念ながら 100% 機能しておらず、分割する必要がある部分をスキップしています。プログラム処理文字列の一部を次に示します。
void parser(String s) {
String REG1 = "(',\\d)|(',')|(\\d,')|(\\d,\\d)";
Pattern p1 = Pattern.compile(REG1);
Matcher m1 = p1.matcher(s);
while (m1.find() ) {
System.out.println(counter + ": "+s.substring(end, m1.end()-1)+" "+end+ " "+m1.end());
end =m1.end();
counter++;
}
}
文字列は次のとおりです。
s= 3101,'12HQ18U0109','11YX27X0041','XX21','SHV7-P Hig, Hig','','GW1','MON','E','A','ASEXPORT-1',1,101,0,'0','1500','V','','',0,'mb-master1'
そして問題は、それが分割されないこと,1,
です,0,
解析のルールは次のとおりです。文字列は次 ,' ',
のよう,'ASEXPORT-1',
int
に囲まれています。, ,
期待される出力 =
3101 | 12HQ18U0109 | 11YX27X0041 | XX21 | SHV7-P Hig, Hig| |GW1 |MON |E | A| ASEXPORT-1| 1 |101 |0 | 0 |1500 | V| | | 0 |mb-master1
全部で 21 の要素。