🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Teil eines Textes Extrahieren (RegEx inkl.)

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Lirobadom
Beiträge: 5
Registriert: Fr 3. Mär 2017, 23:16

[gelöst] Teil eines Textes Extrahieren (RegEx inkl.)

Beitrag von Lirobadom » Mi 15. Mär 2017, 22:48

Hallo,

Also ich versuche aus einer Liste die in einer Spalte das nachfolgende Format hat Daten zu extrahieren:

Text/A_00_1-1_Textundmherinkl(_-)
(k.A. welche Sonderzeichen alle vorkommen können, aber die sind bis jetzt aufgefallen. Und leider gibts auch ein paar andere Sonderfälle, die sollte ich aber schaffen mit (|) oder Regeln abzugreifen)

Das Ziel ist "A_00_1-1" zu erhalten. Die derzeitige Formel:

Code: Alles auswählen

=TEIL(A4;(FINDEN("/";A4))+1;FINDEN("\d_[a-zA-Z]";A4)-FINDEN("/";A4)) 
dabei passt der "\d_[a-zA-Z]" Teil offenbar nicht, folgendes funkt.

Code: Alles auswählen

=TEIL(A3;(FINDEN("/";A3))+1;  12  -FINDEN("/";A3))
Nun, suche ich manuell nach "\d_[a-zA-Z]" (ohne ", reguläre Ausdrücke Aktiv, auch in Calc Optionen btw. und an anderem Beispiel mit SUCHEN-Formel getestet) dann findet er auch die er sollte. Kann es sein, dass FINDEN keine Regulären Ausdrücke mag? Wenn, welche andere Lösung gibt's dafür? Oder hab ich einfach was übersehen?
Zuletzt geändert von Lirobadom am Fr 17. Mär 2017, 01:31, insgesamt 3-mal geändert.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Teil eines Textes Extrahieren (RegEx inkl.)

Beitrag von karolus » Mi 15. Mär 2017, 23:24

Hallo

FINDEN kann nicht mit regulären Ausdrücken, das steht aber auch schon in der Hilfe.

Falls die Regel gilt "alles zwischen / und dem letzten _ "

Code: Alles auswählen

=TEIL(A4; FINDEN("/"; A4) ; SUCHEN("_[^_]*$"; A4) - FINDEN("/"; A4) )
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Lirobadom
Beiträge: 5
Registriert: Fr 3. Mär 2017, 23:16

Re: Teil eines Textes Extrahieren (RegEx inkl.)

Beitrag von Lirobadom » Mi 15. Mär 2017, 23:53

Ah, weil Finden kein RegEx unterstützt dabei stehen hat!?

Ich hatte eig. schon mal Suchen getestet und dabei nen Fehler (Wert!) bekommen? (Vl. bei nem noch inkompatiblen Feld)
Jedenfalls scheine ich Suchen falsch verstanden zu haben, und das ist es, was ich brauch.
K.A. worin dann der Unterschied zw. den beiden liegt (außer RegEx Support)?

Code: Alles auswählen

=TEIL(A2;(FINDEN("/";A2))+1;SUCHEN(("(\d|-)_[a-zA-Z]");A2)-FINDEN("/";A2))
Liefert mir nun zu meist das was ich brauch, bis auf noch einzelne Ausnahmen wo ich noch weiter schauen muss wie ich die RegEx Regeln am besten anwende. Jedenfalls soweit gelöst, danke für das Beispiel, dass mich das erkennen hat lassen. (btw. Nein, "_" und andere Zeichen können am Ende also in "Textundmehr" auch vorkommen, nur am Anfang nicht, deswegen die Kombination weil die .... relativ sicher ist, muss aber noch schauen ob ichs weiter "nach vorne" ausbaue) EDIT: Und wie ich rum-schustern musste (schade dass ich [^\W\d] nicht nutzen konnte - keine Umlaute und hat glaube ich Sonderzeichen beinhaltet?):

Code: Alles auswählen

=TEIL(A2; (FINDEN("/";A2))+1; SUCHEN("(-\d|--|_4|__|\d\d)(_|-|)([a-zA-Z\u00C0-\u017F]+|(\(\d+\)|\d[a-zA-Z\u00C0-\u017F]+))";A2) +1 -FINDEN("/";A2))

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Teil eines Textes Extrahieren (RegEx inkl.)

Beitrag von mikele » Do 16. Mär 2017, 12:16

Hallo,
Das Ziel ist "A_00_1-1" zu erhalten
Und wie ich rum-schustern musste
Warum bleibst du dann nicht einfach bei

Code: Alles auswählen

=TEIL(A3;(FINDEN("/";A3))+1;  12  -FINDEN("/";A3)) 
sprich: Was funktioniert daran nicht?
Gruß,
mikele

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Teil eines Textes Extrahieren (RegEx inkl.)

Beitrag von karolus » Do 16. Mär 2017, 12:43

Hallo
mglw. weil 12 nur zum gezeigten Inhalt passt aber nicht generell
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Lirobadom
Beiträge: 5
Registriert: Fr 3. Mär 2017, 23:16

Re: Teil eines Textes Extrahieren (RegEx inkl.)

Beitrag von Lirobadom » Fr 17. Mär 2017, 01:31

Jep, so ist es leider, wie geschrieben, gibt ein paar "Sonderfälle", die Spezialbehandlung bedurften. Z.B. "irgendeintext/1997_4_irgendeintextundevSonderzeichen". Aber das war per se nicht das Problem, sondern nur dass die "Grundformel" funktioniert. Ich hab das nur hinzugefügt, damit Leute die nach ähnlichem Suchen auch ein Beispiel für die ... vollständige Anwendung haben. Ich mein es ist nicht 100% perfekt für meine Daten aber das beste was ich erreichen konnte bei dem "Mischmasch" aus Daten (also ~4% Sonderbehandlung und aus dieser Teilmenge zeigt es geschätzt 2% nicht .. einwandfrei an) ohne diese aufwändig zu ändern und für meine Zwecke ausreichend.

Lupo
Beiträge: 279
Registriert: Do 11. Okt 2012, 14:22

auch RegEx kann es nicht eindeutig, denn ...

Beitrag von Lupo » So 25. Mär 2018, 14:26

Es ist immer misslich, wenn ein Zeichen (hier der Unterstrich) gleichzeitig Trenner von Wörtern als auch Bestandteil eines Wortes ist.

Hier eine Lösung für den Fall, dass der zweitletzte Unterstrich die gesuchte Folge vor dem Ende abtrennt:

B1: {=TEIL(A1;SUCHEN("/";A1)+1;LÄNGE(A1)-SUCHEN("^";WECHSELN(VERBINDEN(;;TEIL(A1;200-ZEILE($1:$199);1));"_";"^";2))-SUCHEN("/";A1))}

mit Nr. 5
MfG Lupo - xxcl.de Win10ProLO6062


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten