置換を使って、 A=数値,B=数値,C=数値,D=数値 が順不同で並んでいるデータを 行ごとに、 A=数値,B=数値,C=数値,D=数値 の順に整形する。 ただし、D=数値が存在しないデータは、 A=数値,B=数値,C=数値, の形に整形する。 置換前 置換後
A=91,B=6,C=31 A=82,B=5,C=9 A=73,C=4,B=13 A=64,C=3,D=94,B=7 A=55,B=85,C=6 A=46,D=1,C=76,B=5 B=37,A=9,C=67,D=4 B=28,A=8,D=58,C=3 B=19,C=7,A=49,D=2 B=91,C=6,A=1 B=82,D=5,A=22,C=9 B=73,D=4,C=13,A=8
^(?=.*(A=\d+))(?=.*(B=\d+))(?=.*(C=\d+))(?:(?=.*(D=\d+))|(?!.*(D=\d+))).* を \1,\2,\3,\4\5 に置換
肯定先読みで、キャプチャしてます。 (?:(?=.*(D=\d+))|(?!.*(D=\d+))) は、ブール代数の補元法則である _ A + A = 1 より、必ず真になります。 そして、必ず片方のみのキャプチャが空となります。