Texte in anders Feld übertragen ohne Zahlen
Hallo
Ich bitte um Eure Hilfe, da ich leider nicht weiterkomme
Ich habe ein mehrzeiliges Textfeld indem sich Text, Zahlen und () befinden.
Beispiel:
Name (1), Bezeichnung (3), Lager (9), usw
Die Zahlen gehen von 0 - 9, und es können sich mehrere in Klammern befinden
Ist es möglich den Text automatisch in ein anderes Textfeld kopieren zu lassen ohne Zahlen und ohne Klammern?
Idealerweise sogar so, dass alles in den Klammern gleich mit weg ist? (da befinden sich je nachdem wie viele Zahlen sich in der Klammer befinden, auch einige Komas, die ich nicht brauche) (Das könnte ich aber auch anders lösen.
Ideal wäre einfach dass ich die Klammern und Zahlen im anderen Feld nicht sehen würde
Danke und Gruss
12 Antworten
-
Das sollte über replacex() und die richtigen RegEx Ausdrücke klappen:
NEUES_TEXTFELD := replacex(ALTES_TEXTFELD,"\(\d+\)","")
Das sucht nach "Klammer auf" gefolgt von einer "ein- oder mehrstelligen Zahl" gefolgt von einer "Klammer zu" - und ersetzt diese mit nix ""
-
oder via folgendem Code einfach alles innerhalb von Klammern...
NEUES_TEXTFELD := replacex(ALTES_TEXTFELD,"\(\.\)","")
-
danke sehr.
Ich werde das heute abend gleich testen :)
gruss
-
Hallo
Ich Danke für deine Inputs.
Leider führt es aber nicht zum gewünschten Ergebnis
Ich habe gestern Abend und heute morgen versucht herauszufinden woran es liegt, bin aber bis anhing nicht weitergekommen. Daher melde ich mich nochmals
Der Code:
NEUES_TEXTFELD := replacex(ALTES_TEXTFELD,"\(.\)","")
Dieser entfernt wohl die Klammer und den Inhalt, aber nur dann, wenn in der Klammer nur 1 Zahl steht. Sobald ein Komma oder mehrere Zahlen, abgetrennt mit Kommas, stehen, tut sich leider nichts.
Aber das der Komplette Inhalt inkl. den Klammern ersetzt wird durch nichts, wäre der Idealfall.
Was übersehe ich?
Ich habe den Code genau so übernommen:
neue_Lagerzuordnung := replacex(Lagerzuordnung,"\(.\)","")
Danke und Gruss
-
Hi Roger,
du musst den für dich passenden RegEx Befehl finden. Dafür musst Du genau wissen, was in deinem Text alles vorkommen kann. Natürlich lassen sich wie Michi schon schreibt auch replace-Funktionen verschachteln...
Wenn in deinem Text sonst kein Komma vorkommt, kannst du auch erst alle Kommata entfernen replace(DEINTEXT, ",","") und die verbliebenen Klammern mit Zahlen via replacex entfernen:
neue_Lagerzuordnung := replacex(replace(Lagerzuordnung, ",", ""),"\(\d+\)","")
-
danke Euch
Schau ich mir gerne heute Abend an und versuch wieder weiter zu kommen :)
Grundsätzlich weiss ich im Vornhinein was entfernt werden soll: Das sind Zahlen, Kommas und runde Klammern (auf und zu)
Die Ideallösung wäre: Alles was sich IN Klammer, zb: (1,2,4,6,9) befindet soll inkl. den Klammern entfernt werden. Aber das geht so wohl nicht.
Danke für Eure Hilfe und Gruss
-
So müßte es gehen
replacex(Text, "\(.+\)", "")
-
Guten morgen
Super!
Ich danke Euch allen für die Unterstützung!
Das war die Lösung die ich gesucht habe! Funktioniert wunderbar :)
neue_Lagerzuordnung := replacex(replace(Lagerzuordnung, ",", ""),"\(\d+\)","")
Bei dieser Lösung:
replacex(Text, "\(.+\)", "")
passiert folgendes: (Textbeispiel)
Lager (2), Aussenlager (2,3), Lager 8726 (2,3,5,6), usw
Es löscht mir wohl den gesammten Inhalt der Klammer. Aber nur der 1 Klammer und den Rest dahinter verschwindet auch.
Heisst. Das Ergebnis ist:
Lager
Ziel war es ja, das ich al Ergebnis: Lager, Aussenlager, Lager 8726, usw. hätte.
Aber mit dem Code
neue_Lagerzuordnung := replacex(replace(Lagerzuordnung, ",", ""),"\(\d+\)","")
lässt sich das auch wunderbar umsetzen.
Schönen Tag allen und nochmals danke
-
Das Thema RegEx ist sehr komplex aber auch oft echt hilfreich... als Tipp zum rumprobieren: regex101.com .....
Und außerdem sehr wichtig und hilfreich zu wissen: Man kann mit Klammern Gruppen bilden und diese dann im Script gezielt ansprechen (daher muss man Klammern auch mit \ auskommentieren, wenn man tatsächlich nach einer Klammer sucht)
Habe ich zB. immer eine Postleitzahl mit "D-" davor, kann ich den RegEx in zwei Gruppen unterteilen. Ich suche in der ersten Gruppe nach einem Buchstaben "\w" mit folgendem "-"
(\w-)
und in der zweiten Gruppe nach einer mehrstelligen Zahl "\d+" oder exakt 5 stelligen Zahl \d{5}
(\w-)(\d{5})
Diese - mit Klammern gebildeten Gruppen - kann man nun im Script gezielt ansprechen, das funktioniert allerdings nur mit extractx(), nicht mit replacex():
PLZmitD = "D-45436"
SAUBERE_PLZ := extractx(PLZmitD,"(\w-)(\d{5})","$2")
er holt sich also via Script nur die zweite Gruppe "$2" in das Feld SAUBERE_PLZ ...
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 12Antworten
- 90Ansichten
-
4
Folge bereits