Frage stellen
0

REGEX in LO calc

gefragt 2019-11-01 18:47:41 +0100

micha46 Gravatar-Bild

Hallo zusammen,

Ich will die Funktion REGEX in einem Macro anwenden und muß festellen, dass diese Funktion nicht mehr vorhanden ist. Ich bin mir sicher, dass ich REGEX bereits in einem sheet von Hand angewendet habe.

Hat vielleicht jemand eine Idee?

Viele Grüße micha

LO Version: 6.3.3.2 (x64) Build-ID: a64200df03143b798afd1ec74a12ab50359878ed CPU-Threads: 2; BS: Windows 10.0; UI-Render: Standard; VCL: win;

Bearbeiten Tags ändern Melden schließen vereinen löschen

4 Antworten

1

geantwortet 2019-11-02 01:24:33 +0100

Lupp Gravatar-Bild

Naja. BASIC hat selbst kein REGEX(), aber ein FunctionAccess Objekt hat Zugriff auf die REGEX()-Funktion von Calc. Dafür muss ThisComponent nicht etwa ein Spreadsheetdokument sein.

Kleines, hässliches Beispiel:

fa = createUnoService("com.sun.star.sheet.FunctionAccess")
r  = fa.callFunction("REGEX", Array("ballalla%&( +-/[[z $$%)%alno", "\([^\)]*\)"))

Ergebnis: ( +-/[[z $$%)

Bearbeiten Melden löschen Link mehr

Kommentare

Das ist super, genau die Lösung, danke.

Ich hatte versucht über Macro aufzeichnen die Syntax des UNOServices zu erhalten. Der Funktionsaufruf wird leider nicht protokolliert. Gruß micha

micha46 Gravatar-Bildmicha46 ( 2019-11-02 08:21:54 +0100 )Bearbeiten

Nebenbei: Die wirklich vielseitig anwendbare Function REGEX() verdanken wir @erAck. Er hat sie implementiert, und soweit ich das gesehen habe, gab es im Bugtracking-System nicht einmal einen entsprechenfden Featurerequest.
Ich persönlich würde es allerdings noch paradiesischer finden, wenn alle vergleichenden bzw. suchenden Funktionen einen (optionalen) Parameter hätten, der pro Aufrufstelle erlaubt zu wählen, ob man mit Literal, mir RegEx, mit WildCard, oder gemäß einer vorgewählten Einstellung (bei Spreadsheets im CellStyle, sonst fürs FunctionAccess Objekt) arbeiten will. RegEx-Suche/-Vergleich machen ja manchmal auch Probleme wenn man Literale suchen will, die in RegEx Spezialzeichen sind...

Lupp Gravatar-BildLupp ( 2019-11-05 21:41:34 +0100 )Bearbeiten
0

geantwortet 2019-11-01 19:19:46 +0100

micha46 Gravatar-Bild

Update: im sheet hatte ich die Funktion REGAUS verwendet. Trotzdem, was ist mit der Funktion REGEX, die in der LO Hilfe https://help.libreoffice.org/6.2/en-U... angeführt wird?

micha

Bearbeiten Melden löschen Link mehr

Kommentare

Bitte nicht das Antwort Feld benutzen wenn es keine Antwort auf die ursprüngliche Frage ist, sondern kommentieren oder die Frage editieren. Danke.

erAck Gravatar-BilderAck ( 2019-11-01 19:59:30 +0100 )Bearbeiten
0

geantwortet 2019-11-01 19:29:00 +0100

PKG Gravatar-Bild

updated 2019-11-01 19:31:54 +0100

Regex() ist Englisch für Regaus(), es handelt sich um dieselbe Funktion.

Bearbeiten Melden löschen Link mehr

Kommentare

Danke für die Antwort. Das ist mir bei noch keiner Funktion begegnet. Gehört REGEX/REGAUS nicht zur LO RT-Lib? Und zu welcher Lib gehört die Funktion? Ich hab nämlich das nächste Problem. REGAU/REGEX wird im Macro nicht gefunden.

micha

micha46 Gravatar-Bildmicha46 ( 2019-11-01 19:48:34 +0100 )Bearbeiten
0

geantwortet 2019-11-01 19:55:57 +0100

erAck Gravatar-Bild

Basic (ich nehme an das meinst du mit Makro) kennt keine REGEX() Funktion.

Bearbeiten Melden löschen Link mehr

Kommentare

Schade, ich war der Meinung, dass die Funktionen der Module auch in Basic zur Verfügung stehen. Wieder was gelernt. Danke

micha46 Gravatar-Bildmicha46 ( 2019-11-01 20:12:15 +0100 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2019-11-01 18:47:41 +0100

Angesehen: 35 Mal

Aktualisiert: Nov 02