Module:Template input parse: Difference between revisions

Ganaram inukshuk (talk | contribs)
Merged fuzzy-ratio-parsing back into original function, so it's enabled by passing TRUE for the last arg
Ganaram inukshuk (talk | contribs)
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 = '([^' .. delimiter .. ']+)'
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 = '([^' .. delimiter .. ']+)'
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 = '([^' .. delimiter .. ']+)'
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 = '([^' .. delimiter .. ']+)'
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()
return p.parse_numeric_pairs("2.5.7/6.11/6.aesrdnt.17/12", ".", "/", true)
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