Regular Expression und Matcher

Blackvirus

Mitglied
Hey,

ich hab ein kleines Problem mit Regular Expressions. Ich möchte Einträge aus einem CSV-File verarbeiten, beim Großteil der Einträge klappt das wie gewünscht, allerdings gibts einige bei denen meine Regular Expression nicht hinhaut:

Java:
String regex = "\"([0-9]*|TOTAL ): ([^\"]*)\",\"([a-zA-Z]*)\",\"[a-zA-Z]*\",\"([a-zA-Z]*)\",\"([a-zA-Z]*)\",\"([0-9]*)\",([0-9]*.[0-9]*),[a-z]*";

Das Problem ist der Bereich ([^\"]*).

Bei folgendem Eintrag funktioniert die Regex:
Java:
"8811: Photographic cameras; parts & accessories","Germany","Value","Austria","Exports","1988",3442091.00,

Ein Problem hab ich allerdings, wenn im Teil zwischen der Zahl am Anfang und dem "," ebenfalls Anführungszeichen drin sind:
Java:
"66123: Aluminous cement ("ciment fondu")","Germany","Value","Austria","Imports","2008",1126284.09,

Allerdings kommt im ersten Teil soweit ich gesehn hab nie ein "," vor, das heißt ich müsste die zweite Gruppe damit begrenzen. Kurz gesagt, ich brauch eine Möglichkeit um der Regex zu sagen, dass die zweite Gruppe dann beendet ist, wenn auf einen Beistrich (bzw. einem Anführungszeichen gefolgt von einem Beistrich) ein Anführungszeichen folgt. Da häng ich jetzt leider, mit Lookahead's bin ich nicht so wirklich weitergekommen. Wäre super wenn mir hier jemand helfen könnte.

Danke schon Mal :)
 

Lumaraf

Bekanntes Mitglied
Versuch mal [c]((?:[^\"]|\"(?!,))*)[/c] für deine Problemstelle. Alternativ wird da vermutlich auch [c](.*?)[/c] funktionieren.
 

Blackvirus

Mitglied
Versuch mal [c]((?:[^\"]|\"(?!,))*)[/c] für deine Problemstelle. Alternativ wird da vermutlich auch [c](.*?)[/c] funktionieren.

Danke, hat leider nicht geklappt. Allerdings bin ich draufgekommen, dass ich die Daten auch mit ner Pipe als Separator bekomm und die kommt im zweiten Teil nie vor. Leider hab ich jetzt ein anderes Problem. Mit der Regex

Java:
"\"([0-9]*|TOTAL ): (.*)\"\\|\"([a-zA-Z]*)\"\\|\"[a-zA-Z]*\"\\|\"([a-zA-Z]*)\"\\|\"([0-9]*)\"\\|([0-9]*.[0-9]*)\\|[a-z]*";

wird eine Gruppe quasi übersprungen. Das heißt

Java:
"8713: Microscopes (non-optical) ; diffract. apparat., n.e.s."|"Austria"|"Value"|"Slovenia"|"Imports"|"2010"|1356.9328|

ergibt jetzt als zweite Gruppe

Java:
Microscopes (non-optical) ; diffract. apparat., n.e.s."|"Austria

statt

Java:
Microscopes (non-optical) ; diffract. apparat., n.e.s.

Wo liegt hier mein Fehler?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Regular Expression Allgemeine Java-Themen 16
H Regular Expression Allgemeine Java-Themen 11
M Regular expression Allgemeine Java-Themen 5
MrMilti Gruppenreferenz in einer Regular Expression Allgemeine Java-Themen 3
S Java Regular Expression Allgemeine Java-Themen 2
G Parameterauswertung mit regular Expression Allgemeine Java-Themen 3
M Java Regular Expression für Mathe-String (= 2+4*3+2) Allgemeine Java-Themen 7
G Regular Expression Allgemeine Java-Themen 8
D Regular Expression Mit Punkt und Zahl Allgemeine Java-Themen 4
T Regular Expression mit n Gruppen Allgemeine Java-Themen 6
M Regular Expression Allgemeine Java-Themen 2
R Regular expression für '.' Allgemeine Java-Themen 7
M Regular Expression - verschiedene Ausdrücke testen (grep | ) Allgemeine Java-Themen 5
H Regular Expressions: beste Methode? Allgemeine Java-Themen 5
S Java Regular Expressions Allgemeine Java-Themen 2
S Regular Expressions in Java Allgemeine Java-Themen 3
MQue Regular Expr Allgemeine Java-Themen 15
G Regular expressions Allgemeine Java-Themen 4
M Mal wieder . Regular Expressions Allgemeine Java-Themen 2
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
RalleYTN Expression Crawling Allgemeine Java-Themen 5
D Variablen C Expression Validator Allgemeine Java-Themen 7
J Expression Language für mathematische Ausdrücke Allgemeine Java-Themen 8
S Syntax Error, insert "AssignmentOperator Expression&amp Allgemeine Java-Themen 3
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
S String mit Matcher.find durchsuchen und ausgeben Allgemeine Java-Themen 7
R Matcher - Pattern mit belibigem Anfang Allgemeine Java-Themen 2
H Bestimmten String mit Pattern und Matcher herauslesen => kein erfolg Allgemeine Java-Themen 9
S Probleme mit matcher.group() Allgemeine Java-Themen 4
Iron Monkey Pattern - Matcher - Problem Allgemeine Java-Themen 3
V Matcher group mehrfachvorkommen Allgemeine Java-Themen 2
A Unterschied Scanner und Matcher Allgemeine Java-Themen 5
C Matcher/Pattern ersetzten für JDK 1.3 Allgemeine Java-Themen 2
S Die Methode matches der Klasse Matcher Allgemeine Java-Themen 5
M Pattern, Matcher, Split Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben