Problemumgehung für das extractx() “g” flag

Ninox Profile

Hier ist eine grundlegende UDF zum extrahieren aller werte, die einem regex muster entsprechen...

 

function extractxg(src : text,regex : text) do
let extValue := “”;
let idx := 0;
let idxLen := 0;
while testx(src, regex) do 
idx := index(src, extractx(src, regex));
idxLen := length(extractx(substr(src, idx), regex));
extValue := extValue + extractx(substr(src, idx), regex) + “,”;
src := substr(src, idx + idxLen)
end
;
if extValue = “” then
extValue := null
else
extValue := substr(extValue, 0, length(extValue) - 1)
end;
extValue
end

 

Anhand dieses beispiels...

 

let myVar := “a23B65nm87”;
extractxg(myVar, “\D+”)

 

a,B,nm wird als verketteter string zurückgegeben.

Ninox Profile

Hallo Sean,

sehr interessant. Wäre in diesem Fall nicht einfacher gewesen den string mit splitx aufzuteilen? 

concat(splitx(YOURSOURCE, “\d+”))

Leo

Ninox Profile

Hallo Leo,

Das war ein einfaches beispiel. Versuchen sie, die autoren der beiträge mit Ihrer methode aus dem quellcode dieser seite zu extrahieren, ohne die namen zu kennen 😉. Hier ist der code für meine methode...

 

function extractxg(src : text,regex : text,grp : text) do
let extValue := “”;
let idx := 0;
let idxLen := 0;
while testx(src, regex) do 
idx := index(src, extractx(src, regex));
idxLen := length(extractx(substr(src, idx), regex));
extValue := extValue + extractx(substr(src, idx), regex, grp) + “,”;
src := substr(src, idx + idxLen)
end
;
if extValue = “” then
extValue := null
else
extValue := substr(extValue, 0, length(extValue) - 1)
end;
extValue
end;


extractxg(“HTML Source”, “<div class=”“p-forum--post--author”“>\s+(.+)”, “$1”)

 

 

Ninox Profile

Beeindruckend, Ich werde nachher ausprobieren. Habe ein ähnlichen Fall. Was genau macht $1 hier?

Ninox Profile

$1 ist die Erfassungsgruppe. Es enthält den Wert in Klammern (.+).

Ich habe ein Update für die Funktion extractx() angefordert, damit das Flag “g” funktioniert, aber Frank scheint nicht dazu geneigt zu sein.

https://ninox.com/de/forum/ideas-and-suggestions-5abb9f4f45eda7ea1e75ed02/please-fix-the-extract-function-so-flags-will-work-5e25440845dcf70528699a3e

Wie Sie wissen, funktionieren Links in neuen Posts nicht, aber Sie können den Thread finden.

Grüße,
Sean

J

Großartiger Workaround! Gratuliere :-)

Ninox Profile

Danke schön :)

Antworten