【发布时间】:2015-03-09 10:00:32
【问题描述】:
Given 是一个(时间值)字符串,例如:
local dt = "12:34:56"
我想把这个字符串剪成
hh, mm, ss = "12", "34", "56"
因此我像这样使用正则表达式:
local hh = string.format("%02d", tonumber( dt:gsub(":..:..","") ))
local mm = string.format("%02d", tonumber( dt:gsub(":..:",""):gsub(":","") ))
local ss = string.format("%02d", tonumber( dt:gsub("..:..:","") ))
效果很好。 (时间字符串来自用户输入,所以如果用户写“1”而不是“01”,我用0填充)
但是在值以 0 开头的情况下,它超出了 luas tonumber() 的范围(我猜是零符号),与“1”相同,tonumber() 似乎不处理低于“2”的值) 谁能告诉我如何处理这种情况?
除此之外,如果您能向我展示我的正则表达式中的不良做法(如果有的话),我会很高兴。
【问题讨论】:
标签: regex lua numbers lua-patterns