15.075
Bearbeitungen
(Modul ohne e) |
(splitAndStrip() nil handling) |
||
| (7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 39: | Zeile 39: | ||
-- mw.log("split2(" .. (s or "nil") .. ", " .. (delimiter or "nil") .. ")") | -- mw.log("split2(" .. (s or "nil") .. ", " .. (delimiter or "nil") .. ")") | ||
local result = {} | local result = {} | ||
if | if s ~= nil and s ~= "" then | ||
result = p.split(s, delimiter) | result = p.split(s, delimiter) | ||
end | end | ||
-- mw.logObject(result) | -- mw.logObject(result) | ||
return result | return result | ||
end | end | ||
| Zeile 89: | Zeile 68: | ||
-- if list has no content, table will be empty | -- if list has no content, table will be empty | ||
delimiter = delimiter or " " | delimiter = delimiter or " " | ||
s = s .. delimiter | s = (s or "") .. delimiter | ||
local result = {} | local result = {} | ||
local start = 1 | local start = 1 | ||
| Zeile 104: | Zeile 83: | ||
-- mw.logObject(result) | -- mw.logObject(result) | ||
return result | return result | ||
end | |||
function p.bracketSplitAndStrip(s) | |||
-- scheidet einen geklammerten String am Anfang und am Ende ab | |||
-- Beispiel: "( a ) b (c)" ergibt "( a )", "b", "(c)" | |||
local s_pre_bracket = "" | |||
local s_post_bracket = "" | |||
-- Klammerung am Anfang | |||
local bracket_open = string.find(s, "%(") | |||
local bracket_close = string.find(s, "%)") | |||
if bracket_open == 1 and bracket_close ~= nil then | |||
s_pre_bracket = string.sub(s, bracket_open, bracket_close) | |||
s = p.strip(string.sub(s, bracket_close+1)) | |||
end | |||
-- Klammerung am Ende | |||
bracket_open = string.find(s, "%([^%(]*$") | |||
bracket_close = string.find(s, "%)[^%)]*$") | |||
if bracket_open ~= nil and bracket_close == string.len(s) then | |||
s_post_bracket = string.sub(s, bracket_open, bracket_close) | |||
s = p.strip(string.sub(s, 1, bracket_open-1)) | |||
end | |||
return s_pre_bracket, s, s_post_bracket | |||
end | end | ||
return p | return p | ||