Hallo zusammen,
erstmal freue ich mich über die Implementation von der RegEx-Suche im TC.
Folgende Abfrage bekomme ich absolut nicht auf die Reihe:
ich suche alles Dateien die in ein bestimmtes Muster passen, aber nicht "~" im Dateinamen enthalten ist, sozusagen eine UND-Verknüpfung.
meine Abfrage sieht so aus:
^8-[1][0][4]-[5][0][3]-[6-9][0-9][0-9].*\.sld(prt|asm|drw)
d.h. suche alle Dateien die mit 8-104-503-... beginnen das klappt auch so ganz gut, aber ich würde gern alle Dateien ausschließe die das "~"-Zeichen enthalten.
Wie muss dann die Abfrage aussehen.
Gruß
Manuel
Frage zu RegEx
Moderators: Hacker, Stefan2, white
- Clas Hortien
- Senior Member
- Posts: 200
- Joined: 2003-03-03, 15:03 UTC
Re: Frage zu RegEx
[quote="Skreboy"]
d.h. suche alle Dateien die mit 8-104-503-... beginnen das klappt auch so ganz gut, aber ich würde gern alle Dateien ausschließe die das "~"-Zeichen enthalten.
[/quote]
Tach,
das geht, ich habe mal den String etwas überarbeitet: Die vorderen Zeichenklassen (8-[1][0][4]-[5][0][3]-[...) kann man gut zusammenfassen, das macht die Sache etwas übersichtlicher, da es ja eh feste Werte sind.
Anstatt des Punktes suchst Du einfache eine Zeichenklasse die das ~ nicht enthält, also [^~]. Das ^ innerhalb einer Zeichenklasse steht für das NICHT, also alle Zeichen die nicht ~ sind:
^8-104-503-[6-9][0-9][0-9][^~]*\.sld(prt|asm|drw)
Wenn Du noch andere Zeichen nicht willst, einfach mit in die Zeichenklasse schreiben, also [^~äöü] o.ä..
Ich hoffe das hilft.
Gruß
Clas
P.S.:
Du hast aber komische Dateien zu verwalten.
d.h. suche alle Dateien die mit 8-104-503-... beginnen das klappt auch so ganz gut, aber ich würde gern alle Dateien ausschließe die das "~"-Zeichen enthalten.
[/quote]
Tach,
das geht, ich habe mal den String etwas überarbeitet: Die vorderen Zeichenklassen (8-[1][0][4]-[5][0][3]-[...) kann man gut zusammenfassen, das macht die Sache etwas übersichtlicher, da es ja eh feste Werte sind.
Anstatt des Punktes suchst Du einfache eine Zeichenklasse die das ~ nicht enthält, also [^~]. Das ^ innerhalb einer Zeichenklasse steht für das NICHT, also alle Zeichen die nicht ~ sind:
^8-104-503-[6-9][0-9][0-9][^~]*\.sld(prt|asm|drw)
Wenn Du noch andere Zeichen nicht willst, einfach mit in die Zeichenklasse schreiben, also [^~äöü] o.ä..
Ich hoffe das hilft.
Gruß
Clas
P.S.:

#14041
Re: Frage zu RegEx
Hallo Clas,Clas Hortien wrote:^8-104-503-[6-9][0-9][0-9][^~]*\.sld(prt|asm|drw)
Wenn Du noch andere Zeichen nicht willst, einfach mit in die Zeichenklasse schreiben, also [^~äöü] o.ä..
Ich hoffe das hilft.
Gruß
Clas
P.S.:Du hast aber komische Dateien zu verwalten.
erstmal VILEN DANK für die Hilfe. KLappt soweit auch ganz gut.
Ich habe leider noch eine andere Abfrage, suche die auch wieder "nach so einer komischen" Zahlenkombination.
Sie soll alle Files ausgeben, die am Anfang KEIN ~ haben ODER am Anfang mit 8... beginnen.
So habe ich es probiert:
^([^~]|8-104-503-[6-9][0-9][0-9])*\.sld(prt|asm|drw)
hat aber nicht hingeauen.
Hast Du vielleicht eine Idee?
Danke
Gruß
Manuel
- Clas Hortien
- Senior Member
- Posts: 200
- Joined: 2003-03-03, 15:03 UTC
Re: Frage zu RegEx
[quote="Skreboy"]
Sie soll alle Files ausgeben, die am Anfang KEIN ~ haben ODER am Anfang mit 8... beginnen.
So habe ich es probiert:
^([^~]|8-104-503-[6-9][0-9][0-9])*\.sld(prt|asm|drw)
hat aber nicht hingeauen.
[/quote]
So suchst Du Dateien, die nicht ~.sld... oder so heissen wie in dem ersten Fall (8-104-503....).
Deine Anforderung ist etwas undeutlich: Die Dateien die nicht mit ~ anfangen beinhalten auch die, die mit 8 anfangen, also brauchst Du als einziges Kriterium nur NICHT ~.
^[^~]-104-503-[6-9][0-9][0-9]*\.sld(prt|asm|drw)
Das sollte es eigentlich schon gewesen sein. Mit [^~] suchst Du nur ein Zeichen und das darf nicht ~ sein, also genau das was Du suchst, oder ?
Gruß
Clas
Sie soll alle Files ausgeben, die am Anfang KEIN ~ haben ODER am Anfang mit 8... beginnen.
So habe ich es probiert:
^([^~]|8-104-503-[6-9][0-9][0-9])*\.sld(prt|asm|drw)
hat aber nicht hingeauen.
[/quote]
So suchst Du Dateien, die nicht ~.sld... oder so heissen wie in dem ersten Fall (8-104-503....).
Deine Anforderung ist etwas undeutlich: Die Dateien die nicht mit ~ anfangen beinhalten auch die, die mit 8 anfangen, also brauchst Du als einziges Kriterium nur NICHT ~.
^[^~]-104-503-[6-9][0-9][0-9]*\.sld(prt|asm|drw)
Das sollte es eigentlich schon gewesen sein. Mit [^~] suchst Du nur ein Zeichen und das darf nicht ~ sein, also genau das was Du suchst, oder ?
Gruß
Clas
#14041