ich eine Regex aufgebaut haben (in .NET):Build komplexe reguläre Ausdruck
(\d+)\s(.*)\s+(\d+,\d+)\s(tk|kg)\s(\d+,\d+)\s(\d+,\d+)\s(\d+,\d+)\s(\d+,\d+)\s(\d+,\d+)
zum Parsen einer Datei wie:
KMta
Kokku KMta
1 FREETIME Veiniklaas 20cl 10tk (kõrge jalaga) 4,000 tk 3,86 3,22 0,00 3,22 12,87
C50414 6411634254471 Pakendis 10,00
2 ESTOVER Eesti juust 25,2% 1kg(viilud) 2,000 tk 5,51 4,59 0,00 4,59 9,18
C62777 4740572003516 Pakendis 9,00
Prt. \ 31.05.16 \ 7.06.16 Kauba jälgitavuse tagamiseks märgista või lisa konkreetselt ostetud partii
3 DORBLU Sinihallitusjuust 50% 100g(kolmnurk) 5,000 tk 1,47 1,23 0,00 1,23 6,13
C28170 4000504210024 Pakendis 40,00
Prt. \ 26.05.16 \ 2.06.16 Kauba jälgitavuse tagamiseks märgista või lisa konkreetselt ostetud partii
4 WOOL Külmsuitsu heeringafilee kg 0,990 kg 4,56 3,80 0,00 3,80 3,76
C33470 23192278 Pakendis 10,00
Prt. \ 22.04.16 \ 25.04.16 \ 28.04.16 \ 2.05.16 Kauba jälgitavuse tagamiseks märgista või lisa konkreetselt ostetud partii
5 TARPLAN Provansaal majonees 50% 900g 3,000 tk 2,07 1,73 0,00 1,73 5,18
C5035 4740159000082 Pakendis 8,00
Wie u es zu sehen bekommen eine 'Zeilen' aus Quelldatei enthält eine 'Tabelle'. Das Ergebnis der Anpassung ist wie:
1 FREETIME Veiniklaas 20cl 10tk (kõrge jalaga) 4,000 tk 3,86 3,22 0,00 3,22 12,87
2 ESTOVER Eesti juust 25,2% 1kg(viilud) 2,000 tk 5,51 4,59 0,00 4,59 9,18
...
etc
aber ein Quelltext kann enthält etwa so:
18 PÄHKLINÄPP Kuivatatud mustad ploomid
500g(kivideta)
1,000 tk 3,15 2,63 0,00 2,63 2,63
Wie wir nach der zweiten Gruppe sehen (.*)
Wir haben eine neue Linien und dann Die Zeile wird fortgesetzt. Also, wie kann ich meine Regex ändern, damit diese "ungültigen" Zeilen analysiert werden? Vielen Dank!
Try '^ (\ d +) \ s + * \ s + (\ d +, \ d +) \ s + (tk | kg) \ s (\ d +, \ d +) \ s + (\ d +, \ d +) \ s + (\ d +, \ d +) \ s + (\ d +, \ d +) \ s + (\ d +, \ d +) '. Siehe goo.gl/rIvT1w –
Ich versuche mit meiner Datei, aber es stimmt nicht mit dieser Zeile überein. Hier der Teil der Quelldaten mit dem Ausdruck u. Wie wir sehen, 18 Zeilen nicht übereinstimmen. siehe goo.gl/KRbE4C –
Sie haben vergessen, den ** Singleline ** -Modus einzuschalten. Siehe meine Regex: Es hat die Inline-Modifikatoren an Ort und Stelle. '(? ms)' bedeutet * aktiviert Singleline- und Multiline * -Modi. Werfen Sie sie nicht weg, wenn Sie die Regex verwenden. Siehe [weitere Demo] (https://regex101.com/r/mW2dE2/1) –