Publikationsjahr auslesen

Hallo zusammen,
ich habe eine Excel-Datei, die Publikationen von Professoren beinhaltet. In den Spalten sind die Themen und das Jahr (manchmal auch der Monat) der Publikation vorhanden. Ich möchte nur das Jahr (eventuell auch den Monat) aus der Spalte auslesen.
z.B.
Spalteninhalt:
Webbased Automation for Complex Manufacturing Systems, Machine Tools and Factories of the Knowledge; Meier, H.; Smajic, H.; Faller, C.:, 2004, Hg.: Machine Engineering, Vol. 4 No. 1-2, March 2004, s.52-59, ISSN 1642-656.
Ausgelesen soll: 2004 bzw March 2004

Könnte mir jemand weiterhelfen?
Danke

1 Like

WIllkommen im Forum :slight_smile:

Am besten ist für so ein Thema Regex (Regular Expressions) geeignet.

Du kannst den Regex Extractor Node mit der folgenden Regex Expression nutzen:

`\b(January|February|March|April|May|June|July|August|September|October|November|December) \d{4}\b`

Ich habe mal alle Monatsnamen in Englisch mit eingebaut… du könntest weitere in deutsch oder abgekürzt zwischen den ersten Klammern einfügen - immer durch | getrennt - z.B.: …|December|Januar|Februar|Jan|Feb…
Übersicht:

1 Like

Hey MartinDDDD,

vielen Dank für deine Rückmeldung. Ich habe leider den Regex Extractor Node nicht. Habe im Internet dies auch gesucht, jedoch wird der nicht mehr angeboten oder ich finde den nicht ;-). Könntest du mir diesen Knoten irgendwie zur Verfügung stellen, damit ich den einbauen kann.

Danke

Ups. Der ist Teil einer Extension, die etwas komplizierter zu installieren ist.

Du kannst das selbe auch mit dem Expressions Node erreichen:

Du kannst dem Link oben folgen und den Knoten über Drag & Drop in deinen Workflow ziehen:

Dann wirst du wahrscheinlich aufgefordert, die KNIME Expressions Extension zu installieren (sofern du diese noch nicht hast) - einfach den Bildschirmanweisungen folgen und dann warten, bis es installiert ist.

Im Expressions Node kannst du dann diese funktion verwenden:

regex_extract($["column1"], "\\b(January|February|March|April|May|June|July|August|September|October|November|December) \\d{4}\\b", 0)

Anpassen müsstest du nur den Spaltennamen (in der Formel oben “column1”).

1 Like

Hey MartinDDDD,

danke für die alternative Lösung. Jedoch bekomme ich beim Drag&Drop des Knotens auf KNIME folgende Meldung:


Ich kann es nicht einbinden. Hättest du hier auch eine Lösung für mich?
Danke

Ok du scheinst noch die Version 5.2 zu nutzen und genau der Knoten, den ich dir empfohlen habe, funktioniert erst mit Version 5.3.

Wenn sonst nichts dagegen spricht empfehle ich auf 5.3 “upzugraden”.

Müsstest einfach oben rechts auf “Menü” klicken können und dann auf “Check Updates”…

Das habe ich versucht, jedoch bekomme ich eine Fehlermeldung:


Soll ich Knime deinstallieren und erneut mit der neuen Version installieren?

So jetzt hat es geklappt. Vielen Dank für die Information. Kannst du mir auch sagen wie ich die Funktion umschreiben soll, wenn ich mehr als einen column habe? Einige Excel Dateien haben z.B. 10 Column und einige mehr oder weniger.
Muss ich dann für jeden Column eine Expressions Node verwenden?

1 Like

Genau - im Moment geht es leider nur so - eine neue Spalte, ein Expressions Node.

Wenn’s geklappt hat, wäre ich dankbar, wenn du meinen Beitrag oben als Lösung markieren könntest :-).

Erledigt. Vielen Dank nochmal für die Lösung!

1 Like

@SerdarCora die Spalte (Column) in einem Standard wert umbenennen. Dann einen Columm Loop anwenden und in den Standard umbenennen, Expression anwenden und zurück benennen.

So in etwa

1 Like

Hallo @mlauber71,
kannst du mir noch sagen wie ich den Knoten Java Edit Variable (simple) programmieren soll? Bin über den Link, der in deinem Beitrag steht, nicht schlauer geworden.
Danke

Wäre auch hilfreich, wenn du mir zum Knoten Column Expressions eine Funktion geben könntest, dass zu meiner Anforderung passt.
Danke

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.