Wie erstellt man komplexen regulären Ausdruck

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Moin,

ich habe versucht versucht aus einem komplexen Dateinamen einen Pattern zu erzeugen z.B.: de-dsd-lubee-ab3.dd-dd-e4-3e.irgendwas.doc
Die einzelnen Zeichen kann ich ich ausgeben, wenn ich die eizel anspreche, hier de oder dsd usw.
Das Problem habe ich aber bei dem Punkt, denn wenn ich diesen Part anspreche, dann gibt er alles aus bis zum doc. Er soll mir vom Punkt an bis zum nächsten Punkt (hier: dd-dd-ed-3e) ausgeben. Habe es schon mit /b /b versucht, bisher aber kein Erfolg, hätte jemand eine Idee, wie man es besser machen kann? :roll:

Im Voraus besten Dank für die Mühen.

Daniel
 
S

SlaterB

Gast
evtl. \\. für Punkt,
beschreibe aber mal besser näher, was genau du haben willst,
sind doch nur 3 Zeilen Code um einen String zu definieren und ein Pattern darauf anzuwenden..
 
G

Guest

Gast
SlaterB hat gesagt.:
evtl. \\. für Punkt,
beschreibe aber mal besser näher, was genau du haben willst,
sind doch nur 3 Zeilen Code um einen String zu definieren und ein Pattern darauf anzuwenden..

Hi, Slater B,

den Code, den ich erstellt habe sieht folgendermaßen aus :
Pattern bereich1= Pattern.compile("\\D{2}");
Pattern bereich2 = Pattern.compile("\\D{3}");
Pattern bereich3 = Pattern.compile("\\D{5}");
Pattern bereich4 = Pattern.compile(".{2,3}");
Pattern bereich5 = Pattern.compile("\\d+");
Pattern bereich6 = Pattern.compile("\\.[.]+");

Matcher matcher = Pattern.compile("^(" + bereich1 + ")\\-" + "(" + bereich2 + ")\\-" + "(" + bereich3 + ")\\-" + "(" + bereich4 + ")\\-" + "(" + bereich5 + ")\\." + "(" + bereich6 + ")\\." + "(.+$)").matcher(text);

Wie oben beschrieben, soll der Code so ausgelesen werden....
 
S

SlaterB

Gast
hmm, der Code tut ja nix ;)
bitte noch Eingabewert, erhaltenes Ergebnis + gewünschtes Ergebnis,
wenns geht auch etwas gekürzt, mit ein paar Teilbereichen weniger wirst du doch sicherlich noch das gleiche Problem haben?

edit: wieso kompilierst du eigentlich Teil-Pattern und fügst sie am Ende doch zu einem großen String zusammen?
da würde es doch reichen, die ursprünglichen Pattern-Strings zu addieren
 
G

Guest

Gast
import java.util.regex.*;


public class Search
{
public static void main(String[] argv)
{
FileGetter getfile = new FileGetter();
String text = getfile.getFilenames()[0];

String filename = null;

Pattern bereich1= Pattern.compile("\\D{2}");
Pattern bereich2 = Pattern.compile("\\D{3}");
Pattern bereich3 = Pattern.compile("\\D{5}");
Pattern bereich4 = Pattern.compile(".{2,3}");
Pattern bereich5 = Pattern.compile("\\d+");
Pattern bereich6 = Pattern.compile("\\.[.]+");

Matcher matcher = Pattern.compile("^(" + bereich1 + ")\\-" + "(" + bereich2 + ")\\-" + "(" + bereich3 + ")\\-" + "(" + bereich4 + ")\\-" + "(" + bereich5 + ")\\." + "(" + bereich6 + ")\\." + "(.+$)").matcher(text);

if (matcher.lookingAt())
{
filename = matcher.group(6);
}

System.out.println(filename);
System.out.println(text);

Hier der komplette Code
 
S

SlaterB

Gast
der aber weder Eingabewert, noch erhaltenes Ergebnis noch gewünschtes Ergebnis enthält,
soll ich mir deine Datei zusammenraten?

wie auch immer, habe mal das obige Beispiel genommen,
was gibts zu sagen: du arbeitest schlampig, besonders bei der Verbindung der einzelnen Patterns, hast mal ein - zuviel drin oder einen Punkt zu wenig usw.,

wenn du das große ganze testest, dann klappts natürlich nciht und du hast keinen Anhaltspunkt,
arbeite dich Schritt für Schritt voran, teste erst ein Pattern, das nur aus bereich1 besteht, dann bereich1 + 2 und dann immer mehr,

so da ich aber schon so viel gemeckert habe poste ich zumindest auch meine Änderungen ;)

Code:
public class Test
{

    public static void main(String[] args)
        throws Exception
    {
        String st = "de-dsd-lubee-ab3.dd-dd-e4-3e.irgendwas.doc";
        Pattern bereich1 = Pattern.compile("\\D{2}");
        Pattern bereich2 = Pattern.compile("\\D{3}");
        Pattern bereich3 = Pattern.compile("\\D{5}");
        Pattern bereich4 = Pattern.compile(".{2,3}");
        Pattern bereich5 = Pattern.compile("\\d+");
        Pattern bereich6 = Pattern.compile("\\..+");

        String all = "^(" + bereich1 + ")\\-" + "(" + bereich2 + ")\\-" + "(" + bereich3 + ")\\-" 
                     + "(" + bereich4 + ")("
                     + bereich5 + ")(" + bereich6 + ")\\." + "(.+$)";
        Matcher matcher = Pattern.compile(all).matcher(st);
        // Matcher matcher = bereich1.matcher(st);

        if (matcher.lookingAt())
        {
            System.out.println("klappt");
            System.out.println(matcher.group(0));
            System.out.println(matcher.group(1));
            System.out.println(matcher.group(2));
            System.out.println(matcher.group(3));
            System.out.println(matcher.group(4));
            System.out.println(matcher.group(6));
        }
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
L Input/Output AudioInputStream kann nicht erstellt werden. Java Basics - Anfänger-Themen 3
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
J Operatoren Random wird nur einmal erstellt und dann immer verwendet Java Basics - Anfänger-Themen 2
DaCrazyJavaExpert Datenbank wird nicht erstellt Java Basics - Anfänger-Themen 31
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
J Methoden Überprüfen ob Objekt bereits erstellt wurde Java Basics - Anfänger-Themen 2
V Methoden Objekte werden anscheinend nicht erstellt Java Basics - Anfänger-Themen 3
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
P Erste Schritte WindowBuilder erstellt Konstruktor wie zugreifen Java Basics - Anfänger-Themen 5
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
W Eclipse erstellt keine Klassen Java Basics - Anfänger-Themen 6
M Java Eclipse IDE erstellt keinen Bin Ordner. Java Basics - Anfänger-Themen 10
M Java Bukkit Plugin (selbst erstellt) Java Basics - Anfänger-Themen 9
J Compiler-Fehler .jar Datei erstellt aber beim Ausführen Fehler Java Basics - Anfänger-Themen 5
H datei wird zwar erstellt, aber nichts geschrieben Java Basics - Anfänger-Themen 2
B BufferedWriter - nur leere Datei erstellt Java Basics - Anfänger-Themen 4
S Hilfe es werden keine class files erstellt Java Basics - Anfänger-Themen 5
B Liebesprogramm erstellt aber wie sorg ich dafür, dass es im bildschrim agezeigt wird? Java Basics - Anfänger-Themen 16
P Jar Datei kann nicht wie gewollt erstellt werden. Java Basics - Anfänger-Themen 5
Antoras BoxLayout wird auf JPanel nicht erstellt Java Basics - Anfänger-Themen 4
C .class wird nicht erstellt Java Basics - Anfänger-Themen 4
A Checkboxen in Schleife erstellt -> wie 'ansprechen' ? Java Basics - Anfänger-Themen 3
G Wie erstellt Ihr die Hilfe? Java Basics - Anfänger-Themen 4
D Java-Pojekt in Eclispe erstellt -> Wie nun compilieren ? Java Basics - Anfänger-Themen 29
T Fenster JFrame erstellt, jetzt bearbeiten! Java Basics - Anfänger-Themen 6
L Warum erstellt und liesst er nicht die Objekte? Java Basics - Anfänger-Themen 9
G Propertydatei wird zweimal erstellt ? Wie verhindern? Java Basics - Anfänger-Themen 6
P Instanz kann nicht erstellt werden. Java Basics - Anfänger-Themen 2
K Programm erstellt 2 Textdataien Java Basics - Anfänger-Themen 5
B Label wird ungewollt mehrmals erstellt Java Basics - Anfänger-Themen 16
M Programm(JFrame) mit Netbeans erstellt.startet nicht! Java Basics - Anfänger-Themen 4
N RandomAccessFile(File, String) erstellt datei?! Java Basics - Anfänger-Themen 6
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
F Rechnen mit komplexen Zahlen Java Basics - Anfänger-Themen 23
G Berechnung zwei Komplexen Zahlen Java Basics - Anfänger-Themen 34
W Regulären Ausdrücken Java Basics - Anfänger-Themen 8
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
K Regulären Ausdruck in Java abbilden Java Basics - Anfänger-Themen 4
F Frage zu regulären Ausdrücken Java Basics - Anfänger-Themen 4
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
M Textsuche mit regulären Ausdrucken Java Basics - Anfänger-Themen 6
J Automatentheorie-Darstellung der regulären Sprache eines DEA Java Basics - Anfänger-Themen 5
H Regulären Ausdruck automatisch erstellen Java Basics - Anfänger-Themen 5
S Frage zu regulären Ausdrücken Java Basics - Anfänger-Themen 6
B Nach regulären Ausdrücken suchen Java Basics - Anfänger-Themen 14
E Hilfe bei einem Regulären Ausdruck Java Basics - Anfänger-Themen 7
A Counter für die anzahl von regulären ausdrücken Java Basics - Anfänger-Themen 4
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
O Gibt es dafür einen regulären Ausdruck? Java Basics - Anfänger-Themen 9
F Aus Regulären Ausdrücken Zufallszahlen bilden Java Basics - Anfänger-Themen 6
O regulären Ausdrücken Java Basics - Anfänger-Themen 2
T HTML Kommentare mit regulären Ausdrücken entfernen Java Basics - Anfänger-Themen 4
D Klammern in regulären Ausdrücken Java Basics - Anfänger-Themen 2
R Regulären Ausdruck geht nicht Java Basics - Anfänger-Themen 2
T Wie sieht ein '.' im regulären Ausdruck aus? Java Basics - Anfänger-Themen 2
G Problem mit Regulären Ausdrücken Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben