letztes mehrfach vorkommende Zeichen finden
Moderator: Moderatoren
letztes mehrfach vorkommende Zeichen finden
Guten Tag,
aus einer Liste aller relevanten Verzeichnisse (die Anzahl der Ordner ist unterschiedlich) wünsche ich den Namen des letzten Ordners.
Beispiel:
"C:\a1\a2\a3\a4\a5\a6\ordner 1"
"C:\a1\a2\ordnerB zwei"
Von der Länge der Zeichenkette die letzte Fundstelle Backslash "\" abziehen.
Dann erhalte ich die Anzahl der Stellen, die ich mit der "RECHTS"-Funktion bedienen muss, um den Orndernamen
("ordner 1" bzw. irgend ein anderer Ordner mit nicht vergleichbaren Namen incl. möglicher Leerzeichen) zu erhalten.
Ich freue mich auf eine Antwort
Ingo
aus einer Liste aller relevanten Verzeichnisse (die Anzahl der Ordner ist unterschiedlich) wünsche ich den Namen des letzten Ordners.
Beispiel:
"C:\a1\a2\a3\a4\a5\a6\ordner 1"
"C:\a1\a2\ordnerB zwei"
Von der Länge der Zeichenkette die letzte Fundstelle Backslash "\" abziehen.
Dann erhalte ich die Anzahl der Stellen, die ich mit der "RECHTS"-Funktion bedienen muss, um den Orndernamen
("ordner 1" bzw. irgend ein anderer Ordner mit nicht vergleichbaren Namen incl. möglicher Leerzeichen) zu erhalten.
Ich freue mich auf eine Antwort
Ingo
-
- ***
- Beiträge: 61
- Registriert: Mi, 11.07.2012 22:08
Re: letztes mehrfach vorkommende Zeichen finden
Hallo ognih,
ich fasse deine Aufgabe mit meinen Worten zusammen: Du hast eine Zeichenfolge mit diversen Backslashs und suchst die Position des letzten dieser Backslashs, um den Rest der Zeichenkette zu verarbeiten. Mit regulären Ausdrücken sollte das machbar sein.
So ähnliche bzw. gleichartige Fragestellungen gab es im August/September hier im Forum mehrfach. Ich suche die Links raus und füge sie dann hier an.
Ich finde nur noch diese Stelle: viewtopic.php?f=2&t=61398. Es gab noch einen zweiten Thread bei dem das Trennzeichen ein Bindestrich war. Ich glaube, die dort genannte Lösung war eleganter, aber was nutzt's, wenn man es nicht wiederfindet.
Gruß
Bockenheimer
ich fasse deine Aufgabe mit meinen Worten zusammen: Du hast eine Zeichenfolge mit diversen Backslashs und suchst die Position des letzten dieser Backslashs, um den Rest der Zeichenkette zu verarbeiten. Mit regulären Ausdrücken sollte das machbar sein.
So ähnliche bzw. gleichartige Fragestellungen gab es im August/September hier im Forum mehrfach. Ich suche die Links raus und füge sie dann hier an.
Ich finde nur noch diese Stelle: viewtopic.php?f=2&t=61398. Es gab noch einen zweiten Thread bei dem das Trennzeichen ein Bindestrich war. Ich glaube, die dort genannte Lösung war eleganter, aber was nutzt's, wenn man es nicht wiederfindet.
Gruß
Bockenheimer
Re: letztes mehrfach vorkommende Zeichen finden
Hi,
vor langer, langer Zeit wurde hier mal ein ähnliches Problem in Bezug auf den Dateinamen gelöst. Die Lösung hab ich mir notiert und hieraus dies hier zusammengebastelt:
Reguläre Ausdrücke in Formeln müssen zugelassen werden.
Viel Erfolg
paljass
vor langer, langer Zeit wurde hier mal ein ähnliches Problem in Bezug auf den Dateinamen gelöst. Die Lösung hab ich mir notiert und hieraus dies hier zusammengebastelt:
Code: Alles auswählen
=RECHTS(A1;LÄNGE(A1)-SUCHEN("\\[^\\]*$";A1))
Viel Erfolg
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: letztes mehrfach vorkommende Zeichen finden
Hallo Bockenheimer,
verzeih, ich habe die Formel aus Deinem Beispiel nicht probiert.
Hallo Paljass
ist ja dufte + funktioniert.
Kannst Du mir (evtl. auch anderen) bitte das in langschrift erklären, damit ich mit dem Verständnis dann evtl auch zwischendurch einige Ordner auslesen kann.
Suchen in text A1 " \\[^\\]*$" erschließt sich mir nicht:
\\ weil regulär [alles was nicht \\ ist]
* davon keines oder mehr
$ am Absatzende ( den Absatz vermisse ich, ansonsten denke ich mir das eher als dass ich was erklären kann)
und dann; fehlt mir die Qualität, hier noch zu sagen, dass es der ordner zwischen dem ersten + zweiten vorkommen oder dem dritten + vierten vorkommen suchen soll.
Fg Ingo
verzeih, ich habe die Formel aus Deinem Beispiel nicht probiert.
Hallo Paljass
ist ja dufte + funktioniert.
Kannst Du mir (evtl. auch anderen) bitte das in langschrift erklären, damit ich mit dem Verständnis dann evtl auch zwischendurch einige Ordner auslesen kann.
Suchen in text A1 " \\[^\\]*$" erschließt sich mir nicht:
\\ weil regulär [alles was nicht \\ ist]
* davon keines oder mehr
$ am Absatzende ( den Absatz vermisse ich, ansonsten denke ich mir das eher als dass ich was erklären kann)
und dann; fehlt mir die Qualität, hier noch zu sagen, dass es der ordner zwischen dem ersten + zweiten vorkommen oder dem dritten + vierten vorkommen suchen soll.
Fg Ingo
Re: letztes mehrfach vorkommende Zeichen finden
Hi,
und ein wenig umgebaut habe. Reguläre Ausdrücke und ich sind noch nicht wirklich Freunde geworden, obwohl man damit ne Menge erreichen kann, wenn man weiß wie man sie anwenden muss.
Die doppelten Backslashes erklären sich dadurch, dass du einen Bachslash suchst, dieser aber als regulärer Ausdruck gilt; also muss er durch einen weiteren Backslash "maskiert" werden. Weiteres dazu in der Hilfe zu regulären Ausdrücken und etwas
ausführlicher hier.
Gruß
paljass
Nee, nicht umsonst hatte ich ja geschrieben, dass ich das nur abgeschriebenKannst Du mir (evtl. auch anderen) bitte das in langschrift erklären,

Die doppelten Backslashes erklären sich dadurch, dass du einen Bachslash suchst, dieser aber als regulärer Ausdruck gilt; also muss er durch einen weiteren Backslash "maskiert" werden. Weiteres dazu in der Hilfe zu regulären Ausdrücken und etwas

Gruß
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Re: letztes mehrfach vorkommende Zeichen finden
Hallo Ingo
du bist doch schon ganz dicht dran
Suche einen String "" bestehend aus einem backslash \\ gefolgt von irgend etwas außer einen Backslash [^\\] und das am Ende des Absatzes/durchsuchten String *$
du bist doch schon ganz dicht dran
Suche einen String "" bestehend aus einem backslash \\ gefolgt von irgend etwas außer einen Backslash [^\\] und das am Ende des Absatzes/durchsuchten String *$
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: letztes mehrfach vorkommende Zeichen finden
Dank an alle
@paljass ,
der Link verspricht viel, das Verstehen wird seine (oder besser - meine -) Zeit brauchen.
(Ick weess ja noch nich ma, wie ickn schmaileeh ranhängn tu)
@clag
dann sucht der Befehl also so lange, bis er das letzte Vorkommen des Suchmuster erreicht hat.
Duften Erntedank
Fg Ingo
@paljass ,
der Link verspricht viel, das Verstehen wird seine (oder besser - meine -) Zeit brauchen.
(Ick weess ja noch nich ma, wie ickn schmaileeh ranhängn tu)
@clag
dann sucht der Befehl also so lange, bis er das letzte Vorkommen des Suchmuster erreicht hat.
Duften Erntedank
Fg Ingo
Re: letztes mehrfach vorkommende Zeichen finden
Hi
ja, aber =SUCHEN()" gibt da nur die Position des Gesuchten im String aus
ja, aber =SUCHEN()" gibt da nur die Position des Gesuchten im String aus
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: letztes mehrfach vorkommende Zeichen finden
Falls es noch jemanden interessiert:ognih hat geschrieben:Kannst Du mir (evtl. auch anderen) bitte das in langschrift erklären,
Ziemlich gut, aber doch noch „a bisserl“ durcheinander, gell?clag hat geschrieben:Suche einen String "" bestend aus eienm backslash \\ gefolgt von irgend etwas außer einen Backslash [^\\] und das am Ende des Absatzes/String *$
- »Suche einen String ""« ist richtig, aber die Anführungszeichen »""« haben mit dem gesuchten String (Zeichenkette) nix zu tun, denn Reguläre Ausdrücke (RegEx) arbeiten immer mit Strings.
Sie selbst sind aber auch Strings, die, als Literale verwendet, durch »""« eingeschlossen werden. Um eben diese »""« handelt es sich in der SUCHEN-Funktion. - »bestend aus einem backslash \\« ist richtig; die Maskierung hat paljass beschrieben.
- »gefolgt von irgend etwas außer einen Backslash [^\\] und das am Ende des Absatzes/String *$« trifft's nicht so ganz, weil der Asterisk »*« zum ausgeschlossenen Backslash gehört, nicht zum Zeilenende.
Treffender ist »gefolgt von beliebig vielen beliebigen Zeichen mit Ausnahme des Backslash [^\\]*«. Das Dollarzeichen »$« ist hier überflüssig, weil ja eh schon beliebig viele Zeichen vorkommen dürfen und jedes zusätzliche Zeichen auch wieder von der Maßgabe „beliebig viele Zeichen“ abgedeckt wäre.
Allerdings ist zu überlegen, ob der Asterisk »*« hier wirklich gewollt ist, da die Anzahl der dem (ersten) Backslash folgenden Zeichen auch 0 sein darf, der String also nach diesem Backslash endet und der Folge-String also leer wäre. Wenn der leere String nicht erlaubt ist, muss der Asterisk »*« durch das Pluszeichen »+« oder detailliertere numerische Angaben ersetzt werden, wie z.B. {1,} oder {3,8}.
Gruß
lorbass
Re: letztes mehrfach vorkommende Zeichen finden
ha ha ha
man darf sich aber auch wirklich keinen Schnitzer leisten,
das Geschrieben wird sonst sofort zerfleddert
aber das ist auch gut so, das ist was ich an diesem Forum so mag
das garantiert eine exzellente Qualität.
man darf sich aber auch wirklich keinen Schnitzer leisten,
das Geschrieben wird sonst sofort zerfleddert

aber das ist auch gut so, das ist was ich an diesem Forum so mag

das garantiert eine exzellente Qualität.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: letztes mehrfach vorkommende Zeichen finden
… weil schon die Änderung ein einzigen Zeichens oder auch nur Verschiebung eines Zeichens um eine Position im RegEx das Ergebnis total auf den Kopf stellt oder anderweitig unbrauchbar macht.clag hat geschrieben:man darf sich aber auch wirklich keinen Schnitzer leisten,
's ist halt ein kleines Sensibelchen

Gruß
lorbass