regular expression - suche nach |

skYchen

Mitglied
Hallo,

ich habe eine Datei, welche ich analysieren will. Ich suche alle Zeilen die etwa so aussehen (Auszug):
Code:
|1   |A|16  |32  |128 |0   |208 |5   |1   |1023 |0    |
|2   |A|16  |32  |128 |0   |204 |2   |0   |1023 |0    |
|3   |A|16  |32  |128 |0   |183 |0   |0   |1023 |0    |
|4   |A|16  |32  |128 |0   |0   |5   |1   |1023 |0    |
|5   |A|16  |32  |128 |0   |80  |2   |0   |1023 |0    |
|6   |A|16  |32  |128 |0   |84  |2   |0   |1023 |0    |
|7   |A|16  |32  |128 |0   |32  |5   |1   |1023 |0    |
|8   |A|16  |32  |128 |0   |48  |5   |1   |1023 |0    |
|9   |A|16  |32  |128 |0   |164 |2   |0   |1023 |0    |
|10  |A|16  |32  |128 |0   |160 |2   |0   |1023 |0    |
|11  |A|16  |32  |128 |0   |108 |2   |0   |1023 |0    |
|12  |A|16  |32  |128 |0   |116 |2   |0   |1023 |0    |
|13  |A|16  |32  |128 |0   |112 |2   |0   |1023 |0    |
|14  |A|16  |32  |128 |0   |120 |2   |0   |1023 |0    |
|15  |A|16  |32  |128 |0   |124 |2   |0   |1023 |0    |
|16  |A|16  |32  |128 |0   |128 |2   |0   |1023 |0    |
|17  |A|16  |32  |128 |0   |140 |2   |0   |1023 |0    |
|18  |A|16  |32  |128 |0   |136 |2   |0   |1023 |0    |

Leider wfunktioniert das bei mir nicht.
Ich lese die Datei zeilenweise ein und vergleiche jede Zeile mit dem regulären Ausdruck.

Java:
BufferedReader br = new BufferedReader(new FileReader("C:\\test.txt"));
String eingabezeile;
eingabezeile = br.readLine();
Pattern p = Pattern.compile("\\p{Punct}[0-9]([0-9]| ){1,3}"); 
Matcher m; 

while (eingabezeile != null) {
	m =  p.matcher(eingabezeile);
	System.out.println(m.matches());
	
	eingabezeile = br.readLine();
}

Ich weiss nicht, wie ich nach dem | suchen kann? Verwende ich \p{Punct} sagt eclipse "invalid escape sequence",
mit \\p{Punct} finde ich nix und mit [|] geht auch nicht.

Was muss ich machen, damit ich alle oben angegebene Zeilen finde?
 

skYchen

Mitglied
So kenne ich es eigentlich auch. Funktioniert nur nicht. Eclipse meint auch da Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
 
M

Marcinek

Gast
wenn du die Lösung von Nocatrius meinst, dann musst du das \ auch escapen

e.g. "\\|"
 

skYchen

Mitglied
Fuktioniert jetzt. Ich finde alle Zeilen, welche genau mit dem | beginnen.
Java:
BufferedReader br = new BufferedReader(new FileReader(filename));
Pattern p = Pattern.compile("\\|");

Was muss ich nun machen, um genau die gefunden Zeilen weiter zu zerlegen (nach jedem |) und in ein 2d-Array speichern?
Ziel soll sein, das am Ende ein 2d-Array existiert, welches alle Zeilen enthält, die mit | anfangen und die Spalten sollen jeweils die Werte (Strings) sein, die nach bzw. vor dem Zeichen | in der Zeile stehen.

Problem dabei ist, ich weiß nicht die Anzahl der Zeilen, diese soll dynamisch sein. Die Spalten sind fix.

Bsp.:
|1 |A|16 |32 |128 |0 |208 |5 |1 |1023 |0 |aaa
|2 |A|16 |32 |128 |0 |204 |2 |0 |1023 |0 |bbb

-->

array[2][12] = {{"1", "A", "16", "32", "128", "0", "208", "5", "1", "1023", "0", "aaa"}, {"2", "A", "16", "32", "128", "0", "204", "2", "0", "1023", "0", "bbb"}}
 
M

Marcinek

Gast
Der bufferd Input Reader hat eine Methode

getLine oder so..

Damit kannst du deine Zeilen rauslesen.

An deiner Stelle würde ich nach SimpleCSVReader suchen.

Gruß,

Martin
 

Der Müde Joe

Top Contributor
via Collection ?
Java:
String s = "|1   |A|16  |32  |128 |0   |208 |5   |1   |1023 |0    |" +
		"\n|2   |A|16  |32  |128 |0   |204 |2   |0   |1023 |0    |" +
	"\n|3   |A|16  |32  |128 |0   |183 |0   |0   |1023 |0    |";

BufferedReader reader = new BufferedReader(new StringReader(s));
String line = null;

Collection<String[]> result = new LinkedList<String[]>();
while((line = reader.readLine()) != null) {
	String[] blub = line.split("\\|");
	result.add(blub);
}
System.out.println(result.size());
for(String[] strA : result) {
	System.out.println(Arrays.toString(strA));
}
 

Der Müde Joe

Top Contributor
Mach aus Collection<String[]> result =
ein List<String[]> result = und mit result.get(number) gibts die Zeile (das String[]) und dann normal mit Array)

EDIT:
am beseten gleich auch ne ArrayList (beim index zugriff besser)
Java:
List<String[]> result = new ArrayList<String[]>();
//..
String[] zeile1 = result.get(0);
String firstElement = zeile1[0];
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Dimax Erste Schritte Regular Expression Java Basics - Anfänger-Themen 12
L String extrahieren mit Regular Expression über mehrere Zeilen hinweg Java Basics - Anfänger-Themen 1
B Regular Expression bei replace Java Basics - Anfänger-Themen 11
O Regular Expression Java Basics - Anfänger-Themen 4
F Hilfe Regular Expression Grouping Value Java Basics - Anfänger-Themen 3
Y Was macht folgende Regular Expression Java Basics - Anfänger-Themen 2
M Regular Expression - Passwort - aufeinanderfolgende Zeichen Java Basics - Anfänger-Themen 3
S regular expression - bekomme leerzeichen nicht raus Java Basics - Anfänger-Themen 3
J Frage zu Regular Expression Java Basics - Anfänger-Themen 2
P Passwort überprüfen mit regular Expression Java Basics - Anfänger-Themen 4
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
Burny91 Compiler-Fehler Regular Expressions matchen nicht korrekt Java Basics - Anfänger-Themen 5
R regular expressions Java Basics - Anfänger-Themen 3
eykarhorn Escapen in Regular Expressions Java Basics - Anfänger-Themen 7
G Regular expressions Java Basics - Anfänger-Themen 6
G Regular expressions Java Basics - Anfänger-Themen 3
D Regular Expressions Java Basics - Anfänger-Themen 2
G Regular Expressions Java Basics - Anfänger-Themen 3
P Regular expressions: Liste? Java Basics - Anfänger-Themen 7
J Regular Expressions Java Basics - Anfänger-Themen 5
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
I String Expression mit Java validieren (true / false) Java Basics - Anfänger-Themen 34
M Java 8 Lambda Expression Java Basics - Anfänger-Themen 1
J Compiler-Fehler Illegal Start of expression / '/'expected Java Basics - Anfänger-Themen 3
T Not a Statement/Illegal Start of expression bei for Anweisung Java Basics - Anfänger-Themen 6
K Lambda-Expression Java Basics - Anfänger-Themen 4
P ,,Illegal start of expression,, Java Basics - Anfänger-Themen 3
G Reg Expression Java Basics - Anfänger-Themen 6
Z constant expression required Java Basics - Anfänger-Themen 6
K illegal starts of expression Java Basics - Anfänger-Themen 2
S Compiler-Fehler illegal start of expression Java Basics - Anfänger-Themen 4
P illegal start of expression wie löse ich das? Java Basics - Anfänger-Themen 2
P expression tree Java Basics - Anfänger-Themen 4
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
R illegal start of expression - 3 Strings vergleichen mit .equals () Java Basics - Anfänger-Themen 5
X Compiler-Fehler illegal start of expression Java Basics - Anfänger-Themen 9
T Expression Tree.. identifier + Grundaufbau? Java Basics - Anfänger-Themen 2
P Illegal start of expression Java Basics - Anfänger-Themen 8
O Illegal start of expression Java Basics - Anfänger-Themen 3
L Illegal start of expression? Java Basics - Anfänger-Themen 4
S HTML Regularer Expression Java Basics - Anfänger-Themen 20
R GUI mit if-Verzweigung kombiniert - Illegal start of expression (Dringend) Java Basics - Anfänger-Themen 7
S illegal start of expression Java Basics - Anfänger-Themen 2
B Wieso ein Fehler? illegal Starts of expression? Java Basics - Anfänger-Themen 12
M [Hibernate] "Illegal start of expression"-Fehler b Java Basics - Anfänger-Themen 2
D "Illegal Start of Expression" und "; expected Java Basics - Anfänger-Themen 3
G Immer wieder illegal start of expression Java Basics - Anfänger-Themen 15
M regüläre Ausdrücke, die String - Variablen und Expression Java Basics - Anfänger-Themen 5
D Expression Trees Java Basics - Anfänger-Themen 3
E illegal start of expression Java Basics - Anfänger-Themen 4
I Expression-Fehler Java Basics - Anfänger-Themen 2
S private String text; -> "Illegal start of expression Java Basics - Anfänger-Themen 7
B illegal start of expression Java Basics - Anfänger-Themen 6
S illegal start of expression Java Basics - Anfänger-Themen 2
D switch case must be constant expression Java Basics - Anfänger-Themen 7
L illegal start of expression? Java Basics - Anfänger-Themen 19
F Einem Array Werte zuweisen. (illegal start of expression) Java Basics - Anfänger-Themen 4
J Fehlersuche - illegal start of expression Java Basics - Anfänger-Themen 3
D Illegal start of expression - nur warum ? Java Basics - Anfänger-Themen 3
G Fehler: Illegal Expression. Was mache ich falsch? Java Basics - Anfänger-Themen 4
T Methodenerror:"Illegal start of expression" Java Basics - Anfänger-Themen 7
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
M Suche Resteasy Example Java Basics - Anfänger-Themen 24
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
M binäre Suche im Intervall Java Basics - Anfänger-Themen 6
M binäre Suche Java Basics - Anfänger-Themen 4
H Suche Java3D 32 bit Java Basics - Anfänger-Themen 20
amelie123456 Lineare Suche / Binäre Suche Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
RudiRüssel Binäre Suche, unsortiert, lokales Maximum Java Basics - Anfänger-Themen 15
Y Suche von Studenten anhand Ihrer Eigenschaften. Java Basics - Anfänger-Themen 1
F Auf der Suche in π Java Basics - Anfänger-Themen 13
C Suche Nachhilfe in Java Java Basics - Anfänger-Themen 5
T Binärbaum-Suche Implementation Java Basics - Anfänger-Themen 6
A suche dringend Hilfe!! Java Basics - Anfänger-Themen 6
N Operatoren Schreibtischtest der Reihen-Suche nach Aufschluss in die Basics Java Basics - Anfänger-Themen 1
B Suche free SVN Hosting Java Basics - Anfänger-Themen 12
S Binäre-Suche Algorithmus Java Basics - Anfänger-Themen 1
S Java Lineare-Suche Zeitmessung Java Basics - Anfänger-Themen 5
S Java Lineare Suche Java Basics - Anfänger-Themen 1
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
E Die richtige Suche in der API Java Basics - Anfänger-Themen 1
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
E Weg-Suche-Problem rekursiv Java Basics - Anfänger-Themen 12
B Suche Programme mit Fehlern Java Basics - Anfänger-Themen 9
jaleda100 Component für Suche Java Basics - Anfänger-Themen 4
L Suche ein sampel Projekt Java Basics - Anfänger-Themen 2
P Suche Aufwandsgenerator (o-notation) Java Basics - Anfänger-Themen 1
S Suche aktuelles 2D Grafik Tutorial Java Basics - Anfänger-Themen 5
M Suche hilfe bei Array Java Basics - Anfänger-Themen 4
L Binäre Suche mit Comparator Java Basics - Anfänger-Themen 5
J Methoden Suche effiziente Implementierung für eine Methode Java Basics - Anfänger-Themen 3
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
B String: suche nach Wörter und in List<String> speichern Java Basics - Anfänger-Themen 3
D Erste Schritte Suche Quelltext Java Basics - Anfänger-Themen 7
M Rekursion Minimums Suche Java Basics - Anfänger-Themen 12
J Suche Hilfestellung Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben