Reguläre Ausdrücke

bLaSt

Aktives Mitglied
Hey Leute,

ich habe folgendes Problem. Und zwar möchte ich über einen regulären Ausdruck Wörter mit einem bestimmten Schema in einem Text heraussuchen und dann in eine Datei schreiben.
Leider habe ich dazu nichts gefunden.
Es gibt ja mehrere Varianten um über reguläre Ausdrücke Wörter zu suchen:
Java:
//1. Suche mit contains
		System.out.println(" Die Daten enthalten den Text 'huhu' " + daten.contains("huhu"));
		
		//2. Suche (Variante 1) 
		boolean isGueltig = daten.matches("([a-zA-Z]|\\s)*");
		System.out.println("Die Daten passen " + isGueltig);
		
		//3. Suche (Variante 2)
		Pattern pattern = Pattern.compile("([a-zA-Z]|\\s)*");
		Matcher matcher = pattern.matcher(daten);
		System.out.println("Die Daten passen " + matcher.matches());
		
		//4. Suchen und ersetzen (206 -> 7777)
		daten = "+49-7531-206-206";
		daten = daten.replaceAll("(\\+49-7531)-(206)-(\\d+)", "$1-7777-$3");
		System.out.println("Neue Telefonnummer ist " + daten);

Nun habe ich halt das Problem,dass diese Methoden keinen String zurückgeben den ich in eine Datei schreiben könnte. Daher wollte ich euch mal Fragen, ob ihr mir da helfen könnt.

Greez blast
 

faetzminator

Gesperrter Benutzer
Wenn [c]matches()[/c] [c]true[/c] zurückliefert, ist doch bereits der gesamte String dein Suchresultat. Ich verstehe nicht, was du genau machen willst.
Abgesehen davon kann man [c]"([a-zA-Z]|\\s)*"[/c] auch einfacher als [c]"[a-zA-Z\\s]*"[/c] schreiben.
 

Tobias

Top Contributor
Wenn du nur Teilbereiche des Strings matchen willst, helfen dir die Methoden Matcher#find(), Matcher#group(), Matcher#start() und Matcher#end().
 

bLaSt

Aktives Mitglied
Aber das Resultat von beispielsweise:
Java:
 boolean isGueltig = daten.matches("([a-zA-Z]|\\s)*");
        System.out.println("Die Daten passen " + isGueltig);
ist ja ein boolean. Aber ich will ja nicht nur wissen ob er eines der Wörter gefunden hat, sondern ich will das explizite Wort dass gefunden wurde in eine Datei scheiben. Also brauche ich etwas mit dem Rückgabewert String, aber das gibt er mir bei den Methoden nicht zurück. Sondern nur true oder false. Zumal war das ja nur ein Beispiel welche Suchverfahren es gibt, dass ist ja nicht direkt mein Code den ich habe. hier mal mein konkreter Code:
Java:
package uebung17;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class TextDateiEinlesen {
	public static void main(String[] args) {
		// Erzeugen einer Datei in die nachher die gefundenen Wörter geschrieben
		// werden
		File file = new File("C:\\Temp\\Suchergebnis.txt");
		// Einlesen der Zeichen für die gesamte Dateilänge
		FileReader fr;
		try {
			fr = new FileReader("C:\\Temp\\Gesetz.txt");

			BufferedReader br = new BufferedReader(fr);

			String zeile = "";

			do {
				zeile = br.readLine();
                                //Mein bisheriger Versuch das Wort in die entsprechende Datei zu schreiben
				if (zeile.matches("[a-z].*")) {
					String dateiName = "C:\\Temp\\Suchergebnis.txt";
					FileOutputStream schreibeStrom = new FileOutputStream(
							dateiName);
					for (int i = 0; i < zeile.length(); i++) {
						schreibeStrom.write((byte) zeile.charAt(i));
					}
					schreibeStrom.close();
					// FileWriter out = new FileWriter("Suchergebnis.txt");
					// out.append(zeile);
					// out.write(zeile);
					// out.close();
				}
                                //Das ist eine anderer Aufgabenteil, der aber schon passt
				zeile = zeile.replaceAll("(.*) (\\() (\\d+) (\\)) (.*)",
						"$1[$3]$5");
			} while (zeile != null);

			br.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
 

faetzminator

Gesperrter Benutzer
Du meinst so etwas?

Java:
String input = "foo bar baz";

Pattern p = Pattern.compile("[a-zA-Z]+");
Matcher m = p.matcher(input);

List<String> results = new ArrayList<String>();

while (m.find()) {
    results.add(m.group());
}

// nun sind in results die drei String "foo", "bar" und "baz"
 

bLaSt

Aktives Mitglied
Genau. Nur das es halt in meinem Fall halt die gefundenen Wörter aus einem riesigen Text sein sollen.
Und dass diese halt in eine normale Textdatei geschrieben werden sollen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
K FYI: Reguläre Ausdrücke nutzen ja/nein Java Basics - Anfänger-Themen 2
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
P Reguläre Ausdrücke und Korrektheit Java Basics - Anfänger-Themen 2
0 Reguläre Ausdrücke bzw. Zahlenformat im String Java Basics - Anfänger-Themen 7
G Reguläre Ausdrücke Zeichenketten Java Basics - Anfänger-Themen 12
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
C Reguläre-Ausdrücke Java Basics - Anfänger-Themen 5
J reguläre Ausdrücke Java Basics - Anfänger-Themen 1
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
H Erste Schritte Von jpg zu jpeg // reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
C Reguläre Ausdrücke: string.matches() und gefangene Gruppen Java Basics - Anfänger-Themen 12
S Reguläre Ausdrücke richtig einsetzten Java Basics - Anfänger-Themen 5
T Reguläre Ausdrücke Java Basics - Anfänger-Themen 18
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
D Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 16
A Reguläre Ausdrücke Frage Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke mit sehr variablen Eigenschaften Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke - bekomme Suchkriterium nicht hin Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke in Java Java Basics - Anfänger-Themen 2
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
S Strings und reguläre Ausdrücke Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 4
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre ausdrücke? Java Basics - Anfänger-Themen 8
D Reguläre Ausdrücke: Anzahl Wiederholungen als Variable? Java Basics - Anfänger-Themen 3
A Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre Ausdrücke - maskieren von Zeichen? Java Basics - Anfänger-Themen 9
M Reguläre Ausdrücke und Ausgabe Java Basics - Anfänger-Themen 10
K Reguläre Ausdrücke - Gefundene Tokens direkt ermitteln Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke: Zeichenfolge ausschließen Java Basics - Anfänger-Themen 2
G Reguläre Ausdrücke Java Basics - Anfänger-Themen 13
L java und reguläre ausdrücke Java Basics - Anfänger-Themen 4
G Reguläre Ausdrücke zum Filtern von logfiles Java Basics - Anfänger-Themen 2
T Reguläre Ausdrücke? Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke Java Basics - Anfänger-Themen 17
O reguläre Ausdrücke bei java.util.regex.Pattern Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke der Pfade unter Windows und Unix Java Basics - Anfänger-Themen 3
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
G Problem reguläre Ausdrücke Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke: Inhalt zwischen zwei Schlüsselwörtern Java Basics - Anfänger-Themen 2
A Reguläre Ausdrücke: Problem mit Backslash Java Basics - Anfänger-Themen 3
W Reguläre Ausdruck Java Basics - Anfänger-Themen 6
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
S reguläre Audrücke verbinden Java Basics - Anfänger-Themen 18
N reguläre ausdruech und exception Probleme Java Basics - Anfänger-Themen 7
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
S Prüfungsvorbereitung Januar ( Thema Ausdrücke ) Java Basics - Anfänger-Themen 14
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
C Boolsche Ausdrücke Java Basics - Anfänger-Themen 3
A Schleifen und Boolsche Ausdrücke Java Basics - Anfänger-Themen 42
G Java Lambda Ausdrücke Java Basics - Anfänger-Themen 19
A Lambda-Ausdrücke Java Basics - Anfänger-Themen 6
G Lambda Ausdrücke Java Basics - Anfänger-Themen 2
O Lambda Ausdrücke in einem Comparator Java Basics - Anfänger-Themen 4
B Erste Schritte Boolesche Ausdrücke & Gesetze Java Basics - Anfänger-Themen 3
S Lambda Ausdrücke Streams Java Basics - Anfänger-Themen 6
D Variablen Ausdrücke Java Basics - Anfänger-Themen 6
M Lambda - Ausdrücke verstehen Java Basics - Anfänger-Themen 2
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
F Methoden Lambda Ausdrücke Methodensignatur Java Basics - Anfänger-Themen 6
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
J Java 8 Lamda ausdrücke Java Basics - Anfänger-Themen 9
C Lambda Ausdrücke Java Basics - Anfänger-Themen 1
TheSorm Java 8 Lambda-Ausdrücke Java Basics - Anfänger-Themen 9
S Anweisungen Ausdrücke Java Basics - Anfänger-Themen 7
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
K Ausdrücke auswerten Java Basics - Anfänger-Themen 8
C Boolsche Ausdrücke - Wo ist mein Fehler? Java Basics - Anfänger-Themen 14
M Boolsche Ausdrücke minimieren Java Basics - Anfänger-Themen 13
S arithmetische Ausdrücke prüfen Java Basics - Anfänger-Themen 11
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
T Ausdrucksparser für Mathematische Ausdrücke Java Basics - Anfänger-Themen 15
N Ausdrücke Java Basics - Anfänger-Themen 6
W Suche nach strings zwischen eckigen Klammern mittels regulärer Ausdrücke Java Basics - Anfänger-Themen 3
C arithmetische Ausdrücke Java Basics - Anfänger-Themen 7
M regüläre Ausdrücke, die String - Variablen und Expression Java Basics - Anfänger-Themen 5
M Ausdrücke -> Werte Java Basics - Anfänger-Themen 6
A mehrere Ausdrücke in for schleife vergleichen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben