Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.
Huhu
brauch mal eben die unendliche P0w4r von pq..
ich suche nen Regulären Ausdruck der mir z.b. aus diesem String
010F 08 0000303A 01
alle zeichen aus der dritten Gruppe (0000303A) rausholt. Der Dreh dabei ist die Anzahl Zahlen und Buchstaben (nur A-F) der durch Leerzeichen getrennten Grüppchen muss variabel sein. Kann also auch mal
0001 D56810 0102 BB2847
sein.
Meinst du nicht, dass reguläre Ausdrücke für diesen einfachen Zweck etwas übertrieben sind?
Entweder du liest einfach alles zwischen dem zweiten und dritten Leerzeichen ein, oder du benutzt eine funktion wie "explode" oder "split", die in vielen Sprachen verfügbar ist, um den String an den Leerzeichen in seine Bestandteile zu zerlegen.
UP.whatever hat geschrieben:Meinst du nicht, dass reguläre Ausdrücke für diesen einfachen Zweck etwas übertrieben sind?
Entweder du liest einfach alles zwischen dem zweiten und dritten Leerzeichen ein, oder du benutzt eine funktion wie "explode" oder "split", die in vielen Sprachen verfügbar ist, um den String an den Leerzeichen in seine Bestandteile zu zerlegen.
UP.whatever hat geschrieben:Meinst du nicht, dass reguläre Ausdrücke für diesen einfachen Zweck etwas übertrieben sind?
Entweder du liest einfach alles zwischen dem zweiten und dritten Leerzeichen ein, oder du benutzt eine funktion wie "explode" oder "split", die in vielen Sprachen verfügbar ist, um den String an den Leerzeichen in seine Bestandteile zu zerlegen.
Sehe ich im Grunde ähnlich, in diesem Fall kommt es sicherlich auch Kanonen auf Spatzen gleich, aber ich habe mir auch irgendwann dazu gezwungen wo es geht RegExps zu nutzen, einfach um zu lernen damit besser umzugehen. Denn gerade diese einfachen Dinge sind doch die Basis für irgendwelchen assoschwanz RegExp Statements.
Da wo ich die regulären Ausdrücke benutze gibts sowas wie split und explode nicht. Die Sprache ist sehr begrenzt und proprietär, wenn man sowas sagen kann.
Cpt.Gambit hat geschrieben:Da wo ich die regulären Ausdrücke benutze gibts sowas wie split und explode nicht. Die Sprache ist sehr begrenzt und proprietär, wenn man sowas sagen kann.
Das glaub ich ja fast nicht. Auf Array-Indizes zugreifen können doch eigtl alle Sprachen, mehr brauchst du ja nicht.
Dass du dich daran totprobiert hast wage ich auch mal zu bezweifeln. Der erste Ansatz wäre doch, per RegEx nach einer Folge von Gruppen aus Leerzeichen und nicht-Leerzeichen zu suchen. Das ist dann auch robuster als nur alphanum. Zeichen zu suchen.
auch wenn die Frage schon beantwortet wurde, hier noch ein nützlicher Link für alle Regex-nerds http://rubular.com/
Benutz das gerne zum "on-the-fly" testen, ohne jedesmal Chars escapen zu müssen.
Cjs_3f hat geschrieben:auch wenn die Frage schon beantwortet wurde, hier noch ein nützlicher Link für alle Regex-nerds http://rubular.com/
Benutz das gerne zum "on-the-fly" testen, ohne jedesmal Chars escapen zu müssen.
Unter Annahme der oben genannten Datenstruktur, geht es folgend ohne fette regexp Ausdrücke:
#~:awk '{ print $3 }' /foo/bar
-F muss nicht angegeben werden, weil Leerzeichen default Feldtrenner sind.
mors falsi imperatori
Blood for the blood God!!!
---------------------------------
Staat heisst das kälteste aller kalten Ungeheuer. Kalt lügt es auch; und
diese Lüge kriecht aus seinem Munde: "Ich, der Staat, bin das Volk." Lüge
ist's! [...] Wo es noch Volk giebt, da versteht es den Staat nicht und
hasst ihn als bösen Blick und Sünde an Sitten und Rechten. (F. Nietzsche)
bei einem fragmentierten Penis hat er größere Probleme als ungültige Zeichen.
On-Topic: Falls der String validiert werden muss, find ich regex keine schlechte Lösung. Ansonsten würde ich nichtmal zu split greifen (wer weis wie lang der string noch ist ) sondern einfach den substring zwischen 2. und 3. leerzeichen nehmen.
HomicideSapiens hat geschrieben:bei einem fragmentierten Penis hat er größere Probleme als ungültige Zeichen.
On-Topic: Falls der String validiert werden muss, find ich regex keine schlechte Lösung. Ansonsten würde ich nichtmal zu split greifen (wer weis wie lang der string noch ist ) sondern einfach den substring zwischen 2. und 3. leerzeichen nehmen.
Wie sagt man in nem regulären Ausruck, dass er nur die ersten Zeichen auf die er trifft mitnehmen soll?
Bsp:
(Test) Threshold reached for Slow Responses
Ich will das in den Klammern haben, recht einfach:
\((.*)\).*
Wenn nun aber weiterhinten im Text nochmal ne Klammer hab, parst er irgend nen Mist raus, speziell alles zwischen der Ersten Klammer auf und der Letzten Klammer zu.
(Test) Threshold reached for Slow Responses (Bla Blubb)
Wie sag ich dem, daß er nur die ersten Inhalt der Klammer betrachten soll?
Nicht von dem ersten Platz irritieren lassen. Da steht immer nochmal die ganze Zeichenkette drin die gefunden wurde (ohne Patterns). In diesem Fall (Foo).
Außer den * und + Operator von greedy auf stingy zu schalten (ging glaub auch mit ? dahinter), kann man auch einfach nach dem Komplement der schließenden Klammer suchen, bis zur nächsten schließenden Klammer.
Davion3000 hat geschrieben:Unter Annahme der oben genannten Datenstruktur, geht es folgend ohne fette regexp Ausdrücke:
#~:awk '{ print $3 }' /foo/bar
-F muss nicht angegeben werden, weil Leerzeichen default Feldtrenner sind.
Dafür reicht selbst cut, da braucht man nicht dieses fette, träge awk anwerfen.
Cpt.Gambit hat geschrieben:Bsp:
(Test) Threshold reached for Slow Responses
Ich will das in den Klammern haben, recht einfach:
\((.*)\).*
Wenn nun aber weiterhinten im Text nochmal ne Klammer hab, parst er irgend nen Mist raus, speziell alles zwischen der Ersten Klammer auf und der Letzten Klammer zu.
(Test) Threshold reached for Slow Responses (Bla Blubb)
Wie sag ich dem, daß er nur die ersten Inhalt der Klammer betrachten soll?