Hallo Leute.
Ich ärgere mich seit 2 Tagen mit einem Regex-Problem herum. Ich muss aus einer Textdatei verschiedene Ausdrücke rausfiltern. Die meisten habe ich auch schon herausgefiltert, aber bei einer Art von Ausdrücken hänge ich nun schon seit 2 Tagen fest.
Auslesen will ich Ausdrücke folgener Art:
(55,6*5*4)+(4041,UB*IG)=SWAA
(45,8*B*Y*I*K*L)*(65,Z*Y*X*C)=SWAB
Um den Ausdruck einer solchen Klammer auszulesen habe ich folgende Regex formuliert, welche auch funktioniert:
new Regex("([(]([2-8][0-9][0-9][0-9]|[2-8][0-9])[,]([0-9A-Z]*[*]*)+[)])[=][S][A-Z]{3}");
Mit dieser Regex erhalte ich Ergebnisse in dieser Art, was auch korrekt ist
(35,3*7*C*G*K*O*S*W)=SWBD gefunden an Position: 7369
(35,4*8*D*H*L*P*T*X)=SWBE gefunden an Position: 7497
(7677,K5*BQ*BR*BS)=SWBH gefunden an Position: 8916
(7677,K6*BD)=SWBI gefunden an Position: 9042
Leider bekomme ich es nicht hin, dass ich das + oder * und die zweite Klammer dahinter auslesen kann. Ich habe schon sehr viel probiert, aber es klappt nicht. Normalerweise ist ja die zweite Klammer genauso aufgebaut wie die erste, weshalb es ja gehen müsste den ersten Ausdruck nochmal zu kopieren und eine +bzw.*-Verknüpfung dazwischen zu schieben.
Ich weiss nicht wieso, aber das geht nicht, wenn ich die erste Klammer nochmal kopieren und mit UND oder ODER verknüpfe. Dies sieht dann so aus:
("([(]([2-8][0-9][0-9][0-9]|[2-8][0-9])[,]([0-9A-Z]*[*]*)+[)])[+]*([(]([2-8][0-9][0-9][0-9]|[2-8][0-9])[,]([0-9A-Z]*[*]*)+[)])[=][S][A-Z]{3}")
Woran könnte das liegen? Hat jemand Tipps oder Vorschläge wie diese gesuchten Ausdrücke abfragbar sind??? Vielen Dank im Voraus.
Mfg