Module:Template input parse: Difference between revisions
Merged fuzzy-ratio-parsing back into original function, so it's enabled by passing TRUE for the last arg |
m testing...? |
||
(One intermediate revision by one other user not shown) | |||
Line 8: | Line 8: | ||
function p.parse_entries(unparsed, delimiter) | function p.parse_entries(unparsed, delimiter) | ||
local parsed = {} | local parsed = {} | ||
local delimiter = delimiter or | local delimiter = delimiter or ";" | ||
local expr = | local expr = "([^" .. delimiter .. "]+)" | ||
for entry in string.gmatch(unparsed, expr) do | for entry in string.gmatch(unparsed, expr) do | ||
local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | ||
Line 23: | Line 23: | ||
function p.parse_numeric_entries(unparsed, delimiter) | function p.parse_numeric_entries(unparsed, delimiter) | ||
local parsed = {} | local parsed = {} | ||
local delimiter = delimiter or | local delimiter = delimiter or ";" | ||
local expr = | local expr = "([^" .. delimiter .. "]+)" | ||
for entry in string.gmatch(unparsed, expr) do | for entry in string.gmatch(unparsed, expr) do | ||
local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | ||
Line 37: | Line 37: | ||
function p.parse_pair(unparsed, delimiter) | function p.parse_pair(unparsed, delimiter) | ||
local parsed = {} | local parsed = {} | ||
local delimiter = delimiter or | local delimiter = delimiter or ":" | ||
local expr = | local expr = "([^" .. delimiter .. "]+)" | ||
for entry in string.gmatch(unparsed, expr) do | for entry in string.gmatch(unparsed, expr) do | ||
local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | ||
Line 56: | Line 56: | ||
function p.parse_numeric_pair(unparsed, delimiter, is_fuzzy) | function p.parse_numeric_pair(unparsed, delimiter, is_fuzzy) | ||
local parsed = {} | local parsed = {} | ||
local delimiter = delimiter or | local delimiter = delimiter or ":" | ||
local is_fuzzy = is_fuzzy or false | local is_fuzzy = is_fuzzy or false | ||
local expr = | local expr = "([^" .. delimiter .. "]+)" | ||
for entry in string.gmatch(unparsed, expr) do | for entry in string.gmatch(unparsed, expr) do | ||
local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | local trimmed = entry:gsub("^%s*(.-)%s*$", "%1") | ||
Line 120: | Line 120: | ||
function p.tester() | function p.tester() | ||
local parse_me = "15625/15552; 325/324, 625/624" | |||
local parsed_me = p.parse_entries(parse_me, ";") | |||
local parsed_me_2 = {} | |||
for i = 1, #parsed_me do | |||
local parsed = p.parse_numeric_pairs(parsed_me[i], ",", false) | |||
table.insert(parsed_me_2, parsed) | |||
end | |||
return parsed_me_2 | |||
end | end | ||
return p | return p |