Reguläre Ausdrücke

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

um alles was keine Zahl ist aus einem String zu extrahieren, hat sich für mich replaceAll("[^0-9]"," "); bewährt. Nun habe ich aber folgendes Problem:

Es könnte ja auch sein daß außer so sinnlosen Zeichenketten wie #.200( auch mal ein double mit 200.003 oder ähnliches kommt. Dann fällt bei meiner Lsg. der Punk weg, obwohl er bleiben soll.

Nun dachte ich Zahl(en).Zahl(en) kann ich wie folgt darstellen [0-9]+\\.[0-9]+ das müsste man dann nur noch negieren. Dies klappt aber nicht. Wie schaffe ich es alle Zahlen "freizustellen" und im Fall von double den Punk nicht zu entfernen? Regulär sollen keine zu double gehörigen Pkt. natürlich gefiltert werden.

Übrigens: Gibt es irgendwo ein schönes Tutorial zu regulären ausdrücken?
 
G

Gast

Gast
Hi,

soweit bin ich nun auch gekommen:

String test="+(250.003.))";
test=test.replaceAll("[^[0-9]+\\.?[0-9]+]"," ");


Mein Problem ist, dass alles ersetzt werden soll, was nicht dem Kriterium genügt. Der Post von Wildcard filtert, da äquivalent zu meinem, zwar den String richtig. Es soll aber alles wegfallen was nicht eine Zahl mit/ohne Dezimalpunkt ist. Wie formuliere ich in meiner Anfrage ein "nicht" ? Dann müsste es klappen. Besten Dank.

P.S. Hat nun noch einer ein gutes Tutorial zu reg. Expr. parat?
 

Wildcard

Top Contributor
Warum von hinten durch die Brust ins Auge?
Hol dir mit einem Matcher alles was dich interessiert raus und wirf den Rest weg.
Negieren ist in einem RegEx nämlich gar nicht so einfach.
 

Waldbeere

Mitglied
Hi Du,

also, wenn es Dir nur darum geht aus einen String sämtliche Zahlen bzw
Kommazahlen zu entfernen bietet es sich an den Scanner aus Java 5 zu verwenden.
Bei ihm kannst Du einen regülären Ausdruck angeben der als Trennzeichen funktioniert,
dann kannst du Dir einfach schön den String neu zusammenbauen.

Code:
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        
        String theString    = "78pof+(250.003.)3455,456ghj)78pof";
        Scanner theScanner  = new Scanner(theString);
        theScanner.useDelimiter("[0-9]+\\.{1}[0-9]+|[0-9]+,{1}[0-9]+|[0-9]*");        
        
        StringBuffer theBuffer = new StringBuffer();
        
        while (theScanner.hasNext()) {
            theBuffer.append(theScanner.next());
        }
        
        System.out.println(theBuffer.toString());
    }
}

Hoffe konnte helfen :)

Gruss Waldbeere
 
G

Gast

Gast
Hi,

nochmal zur Negierung. Wieso ist das so schwierig?

String test="+(250.003.))";
test=test.replaceAll("[^[0-9]+\\.?[0-9]+]"," ");

Wenn ich nun den Ausdruck negieren könnte hätte ich ohne Matcher mein Ziel erreicht. Schade. Ich dachte ich kann es direkt in replaceAll durch die Negation erreichen.
 
G

Gast

Gast
Hi nochmal,

bzgl der Antwort von Wildcard:

Warum von hinten durch die Brust ins Auge?
Hol dir mit einem Matcher alles was dich interessiert raus und wirf den Rest weg.
Negieren ist in einem RegEx nämlich gar nicht so einfach.

Wenn ich den regulären Ausdruck habe, der mein Problem beschreibt, also in meinem Bsp.

\\d*\\.?\\d*

Wie würde ich dann den String bzw. die Teile des Strings die das Kriterium erfüllen aus dem String extrahieren? Wenn die Negation bei replace() nicht funtioniert wie mache ich dann das extrahieren?

D.h. mit welcher Methode? Bei der Matcher Klasse habe ich nichts gefunden und auch die String Klassen geben keine Antwort.
 
G

Gast

Gast
Hi.Nach Lektüre der Klassenbeschreibung würde ich jetzt auf group() tipppen um das gefunden Muster zu extrahieren. Wäre das so O.K.?

Noch eine Frage... Wie binde ich diese Klassenbeschreibungen in ein Programm wie Eclipse ein? Kennt da jemand eine gute Anleitung?
 

Wildcard

Top Contributor
Genau, group.
Du meinst die Java-Docs?
Am besten du drückst Strg, fährst über eine Klasse der Java-Bibliothek und klickst darauf.
Dann drückst du auf den Attach Source Knopf und wählst die scr.zip aus.
 
G

Gast

Gast
Ja, ich meine die JavaDocs. Gibt es eine Anleitung wie ich die bei Eclipse direkt einbinde. Erst muss ich sie mir runterladen. Aber wo binde ich diese dann ein, dass ich direkt darauf zugreifen kann?

Der Matcher funktioniert. Aber warum muss man immer erst find() aufrufen, bevor man das Ergebnis mit group() extrahieren kann?

Beispiel:

Code:
String test="+(250.003.))";
	Pattern p=Pattern.compile("[0-9]+\\.?[0-9]+");
	Matcher m=p.matcher(test);
	
	m.find();	
	System.out.println(m.group());

Wenn ich m.find nicht vorher aufrufe kommt eine Fehlermeldung. Ich dachte bei aufrufen von p.matcher wird gleich die erste Übereinstimmung geliefert...
 

Wildcard

Top Contributor
Ich hab dir doch 'ne Anleitung gegeben ???:L
Die src.zip liegt dem JDK bei.
Matcher hat unterschiedlich Match Mechanismen.
zB. lookingAt, matches und find.
Nimm das, was deiner Anwendung am besten entgegen kommt.
Eine dieser Methoden musst du aufrufen bevor du die groups abfragen kannst.
 
Status
Nicht offen für weitere Antworten.
Ä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
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
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
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