Erste Schritte Pattern zum Zerlegen von selbstdefinierten Dateinamen

ForenDaddy

Aktives Mitglied
Sitze gerade vor einem pattern, dass nicht soll wie ich.
Ich nutze für Dateinamen eine bestimmte Benennungsmethode, die Dateinamen nach einem bestimmten Muster erzeugt. Unterstrich (_) ist dabei das Trennzeichen. Nach jedem Unterstrich kommt immer eine Kategorie oder Art der Datei, Datum etc.

Erlaubt soll dadurch sein:
Java:
String filename = "00000000_aaa_bbb_ccc";
oder
Java:
filename = "00000000_aaa_bbb_ccc_ddd";

Mein Pattern bisher:
Java:
Pattern.matches(".+(_.+){3,4}", filename);

Nicht erlaubt soll sein:
Java:
String filename = "00000000_aaa_bbb";
filename = "00000000_aaa";
filename = "00000000";
filename = "00000000_aaa_bbb_ccc_ddd_eee";
filename = "00000000_aaa_bbb_ccc_ddd_eee_fff";
etc pp

Leider erlaubt mein Pattern Dateien mit Unterstrichfolgen über D hinaus.
So ist z.B.
Java:
filename = "00000000_aaa_bbb_ccc_ddd_eee.jpg";
auch gültig.
Alles was kleiner ist, wird korrekt abgefangen.
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Entweder [c]".+(_.+?){3,4}"[/c] oder [c]".+(_[^_]+){3,4}"[/c].
Edit: Zur Erklärung [japi]Pattern[/japi], Thema "Reluctant quantifiers"
 

Niggel595

Mitglied
Moin,

wie wärs denn damit:

Java:
if(filename.split("_").length==4)

Das ist zwar nicht wirklich effizient, aber einfach, gut verständlich und vermutlich völlig ausreichend ;)

LG
Niggel
 

faetzminator

Gesperrter Benutzer
Das ist zwar nicht wirklich effizient, aber einfach, gut verständlich und vermutlich völlig ausreichend ;)

Falsch, richtig, richtig, vielleicht. Natürlich ist ein einfacher Split schneller als ein Regex Pattern, aber niemals auf das achten, sofern nicht unbedingt notwendig (was in 99.9% der Fällen so ist)!
Ich persönlich arbeite lieber mit Regex, abgesehen davon könnte man den Regex dann noch irgendwie so schreiben: [c]"\\d+(_\\w+){3,4}"[/c].
 

ForenDaddy

Aktives Mitglied
@Nigel595
Damit habe ich begonnen. Aber es gibt noch andere pattern die ich brauche und dann wird das so sehr unübersichtlich. Pattern ist schon besser.

@faetzminator
Das erste funktioniert gar nicht richtig.
[STRIKE]+ und ?, schließt sich das nicht aus? Wie soll der matcher entscheiden, ob er jetzt keinmal, einmal oder beliebig häufig das Zeichen zulässst?[/STRIKE]
Ok, dann entspricht + = +?. Sieht nur komplizierter aus :oops:

Das Zweite erzielt leider das selbe Resultat wie meines.
Zeichenfolgen mit mehr als D Stellen kommen durch.

@faetzminator
Bringt leider auch das selbe Resultat wie meines.
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Der Unterstrich gilt in Regex ebenfalls als Wordcharacter
Beginnt der Name immer mit Zahlen und in den restlichen Blöcken sind Buchstaben?
Code:
"\\d+(_[a-z]){3,4}"
 

ForenDaddy

Aktives Mitglied
Habs:

Java:
"[^_]+(_[^_]+){3,4}"

und wie Michael logisch schlussfolgert, wird natürlich der Unterstrich auch als beliebiges Zeichen erkannt.
Da in den Worten auch Bindestriche oder @ etc pp vorkommen können, funktioniert die Version so erstmal am besten.

@Michael
Der Name beginnt nicht immer mit Zahlen. In den Blöcken können beliebige Zeichen stehen.
0000 und aaa sind nur als Unterscheidungsmerkmal gedacht.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D was ist der vorteil vom Builder-design pattern? Java Basics - Anfänger-Themen 11
W GoF-Pattern im Programmierer-Alltag Java Basics - Anfänger-Themen 113
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J Methoden Observer-Pattern mit Consumer und accept( ) Java Basics - Anfänger-Themen 6
Dimax Erste Schritte Pattern.matcher,die Besonderheiten. Java Basics - Anfänger-Themen 12
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
F Design pattern Java Basics - Anfänger-Themen 29
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
M Schlüsselworte Unterschied: String.matches und Pattern.compile Java Basics - Anfänger-Themen 2
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
D Design Pattern Command Java Basics - Anfänger-Themen 3
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
fLooojava MVC Pattern und Observer Pattern Java Basics - Anfänger-Themen 6
S Regex Pattern Java Basics - Anfänger-Themen 3
Z Pattern und Matcher substring zu String möglich? Java Basics - Anfänger-Themen 4
B Pattern für Email Liste Java Basics - Anfänger-Themen 3
J Builder Pattern implementieren Java Basics - Anfänger-Themen 3
Tarrew Proxy Design-Pattern Java Basics - Anfänger-Themen 1
M Methoden Pattern Matching Vokal Java Basics - Anfänger-Themen 2
agent47 Pattern split Java Basics - Anfänger-Themen 2
J MVC Pattern, mehrere Controller/Views/Models Java Basics - Anfänger-Themen 0
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
I Vertändnisfrage zu Prototype Pattern Java Basics - Anfänger-Themen 0
L Kompositum-Pattern Hilfe :O Java Basics - Anfänger-Themen 4
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
B Pattern Matching ohne Match-Methoden Java Basics - Anfänger-Themen 11
Furtano OOP Memento Pattern | übergabe einer Kopie des Arrays Java Basics - Anfänger-Themen 0
M MVC + Strategy Pattern Ansatz (mit Code) Java Basics - Anfänger-Themen 5
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
Rudolf OOP Übungen zu Design Pattern in Java Java Basics - Anfänger-Themen 6
A Observer Pattern Problem Java Basics - Anfänger-Themen 15
J Interface Frage zu Interfces am Beispiel Observer Pattern Java Basics - Anfänger-Themen 8
S OOP Regex Pattern Java Basics - Anfänger-Themen 2
P Grundsatzfrage zu Decorator-Pattern Java Basics - Anfänger-Themen 6
L Pattern Matching Java Basics - Anfänger-Themen 3
L RegExp bzw Pattern in Java Java Basics - Anfänger-Themen 6
Helgon Observer Pattern - hasChanged() immer false Java Basics - Anfänger-Themen 10
R aktualisierung des View im MVC-Pattern Java Basics - Anfänger-Themen 5
M RegEx Pattern Matcher Java Basics - Anfänger-Themen 16
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
N Regexp Pattern & Matcher Problem Java Basics - Anfänger-Themen 4
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
R Welches Design pattern Java Basics - Anfänger-Themen 10
B static und Pattern matching Java Basics - Anfänger-Themen 22
T pattern klappt nicht so Java Basics - Anfänger-Themen 6
T Decorator Pattern Java Basics - Anfänger-Themen 7
A Pattern und Matcher Java Basics - Anfänger-Themen 9
T Frage zu Pattern/Matcher Java Basics - Anfänger-Themen 6
D Pattern in Midi-Sequencer Java Basics - Anfänger-Themen 2
V Frage zu Decorator-Pattern Java Basics - Anfänger-Themen 4
S OOP Factory Pattern Java Basics - Anfänger-Themen 2
C OOP Observer Pattern Java Basics - Anfänger-Themen 2
M Regex-Pattern Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
Raidri Pattern liefert false Java Basics - Anfänger-Themen 9
megachucky regex-Problem ( mit den Klassen Matcher / Pattern) --> XML prüfen Java Basics - Anfänger-Themen 11
O useDelimiter / Muster im Parameter (Pattern) Java Basics - Anfänger-Themen 6
S Problem mit Pattern Java Basics - Anfänger-Themen 2
S Pattern.matches mit Ignore Case Java Basics - Anfänger-Themen 2
N in int array einen pattern(eine zahl) finden Java Basics - Anfänger-Themen 21
A Hilfe zu Pattern Java Basics - Anfänger-Themen 2
Y Pattern Java Basics - Anfänger-Themen 2
A Proxy Pattern implementieren Java Basics - Anfänger-Themen 2
N OOP MVC Pattern Java Basics - Anfänger-Themen 3
G Probleme mit Pattern und Aussagenlogik Java Basics - Anfänger-Themen 6
H Verständnis Strategy Pattern Java Basics - Anfänger-Themen 4
D regexp-pattern .. letzter schliff Java Basics - Anfänger-Themen 6
A ist das ein Singleton-Pattern? Java Basics - Anfänger-Themen 6
Z regexp/pattern für dateipfad Java Basics - Anfänger-Themen 5
A Factory Pattern Java Basics - Anfänger-Themen 2
D Objekte anlegen und Singleton Pattern Java Basics - Anfänger-Themen 21
O Erklärung für Pattern Java Basics - Anfänger-Themen 5
U Java Pattern Regex Java Basics - Anfänger-Themen 9
0 Probleme mit Pattern und Matcher Java Basics - Anfänger-Themen 5
K Observer Pattern notifyObservers Java Basics - Anfänger-Themen 9
S geeignetes Such Pattern Java Basics - Anfänger-Themen 6
J Zugriff mit Visitor Pattern auf eigen erstellte verk. Liste Java Basics - Anfänger-Themen 3
J Visitor Pattern Java Basics - Anfänger-Themen 4
W Observer-Pattern Java Basics - Anfänger-Themen 3
M Singleton Pattern Java Basics - Anfänger-Themen 35
J Singleton Pattern Java Basics - Anfänger-Themen 5
J Ant pattern Erklaerung Java Basics - Anfänger-Themen 4
G Aufbau MVC-Pattern Java Basics - Anfänger-Themen 6
M Pattern Matching Java Basics - Anfänger-Themen 2
S Singleton Pattern passend hierfür? Java Basics - Anfänger-Themen 60
M Factory Pattern Ansatz falsch? Java Basics - Anfänger-Themen 6
Y Hilfe bei Pattern-Regexp Java Basics - Anfänger-Themen 5
U pattern Java Basics - Anfänger-Themen 2
A Pattern.matches(); Java Basics - Anfänger-Themen 14
A Problem mit Obser-Pattern Java Basics - Anfänger-Themen 2
P pattern/match Java Basics - Anfänger-Themen 2
K Probleme mit RegEx (Pattern und Matcher) Java Basics - Anfänger-Themen 2
K Regex Pattern Java Basics - Anfänger-Themen 4
G Vorteile Reflection bezüglich MVC-Pattern Java Basics - Anfänger-Themen 9
F regex pattern problem Java Basics - Anfänger-Themen 4
S Regex Pattern Problem Java Basics - Anfänger-Themen 2
G Singleton Pattern Java Basics - Anfänger-Themen 7
F Pattern und Matcher Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben