2017-07-28 3 views
-1

Im Moment habe ich die folgende regex:Regex Ausgabe Parsen Daten

(\d{7})\s(\d{2}\/\d{2}\/\d{4})\s([a-zA-Z\-\s\&\#\,\'\.\/\(\)\d]*)\s(\d+[\w\.\/\#]*)\s([a-zA-Z\/\&\s\d\*\-]*\d{0,1}\.{0,1}\d*[a-zA-Z]*)\s([a-zA-Z]*[\d+\.{0,1}\-{0,1}\d]+[a-zA-Z]*)\s(\d+)\s([a-zA-Z]*[\d+\.{0,1}\-{0,1}\d]+[a-zA-Z\s]*)\s([\(\d\,]*\.\d+[\)]*)\s([\(\d\,]*\.\d+[\)]*)\s([\(]*\${1}[\d\.\,\)]*)\s([a-zA-Z\s\$\.\d\/]*)\s([\(]*\${1}[\d\,]+\.\d{0,2}[\)]*)(\d+) 

Die Eingabezeichenfolge analysiert wird, ist:

6655738 03/31/2017 OTTER CREEK COUNTRY STORES, INC RICHS 72/ 2.5 OZ DONUT JUMBO RING 03853 989200 00049800038530 1.00 12.90 $21.21 $2.00 Per Unit $2.00109830 

Die 3. Gruppe kehrt OTTER CREEK COUNTRY STORES, INC RICHS 72/ während ich nur OTTER CREEK COUNTRY STORES, INC RICHS wollen.

Kann mir jemand sagen, was ich in der Regex ändern soll, damit das funktioniert?

+0

Welche Sprache verwenden Sie? (Stellen Sie keine Regex-Frage, ohne die Sprache, das Tool oder die Regex-Engine anzugeben, die Sie mit dem entsprechenden Tag verwenden). –

+0

Ich benutze dies in einem Tool, das java.util.regex verwendet – Ravi

Antwort

0

Ihre dritte Gruppe ist: ([a-zA-Z\-\s\&\#\,\'\.\/\(\)\d]*), die Zahlen und Schrägstriche enthält. Wenn Sie diese nicht möchten, legen Sie sie außerhalb der Gruppe.

Die richtige Lösung hängt jedoch vom Format Ihrer Eingabezeichenfolge ab. Vielleicht hat die dritte Gruppe eine Längenabhängigkeit - dann muss Ihre Regexp ein anderes Setup haben.

+0

Vielen Dank für die Antwort. Es besteht keine Abhängigkeit von der Länge. Die dritte Gruppe sollte das sein, was ich bereits erwähnt habe. 4. Gruppe sollte 72/2.5 OZ sein. Ich bin mir nicht sicher, wie ich es bekommen soll. – Ravi