首页 > 解决方案 > 从 Lua 中的数据获取日、月、年

问题描述

我的数据格式:2018 年 8 月 3 日。

我需要从上述格式的数据中分别获取日、月和年。

下一个片段一直用于寻找一天。不幸的是,它不适用于错误“尝试连接字段'day'(函数值)。”:

local exampleArray = {data = "", day = "", month = "", year = ""}
exampleArray["day"]=string.gmatch(entitiesArray["data"], '%d*%.?%d+')

也许,这是一个错误的正则表达式。那么,解决问题的正则表达式是什么?

另外,除了使用正则表达式之外,是否存在其他解决方案?

标签: lua

解决方案


如果输入字符串是3 august 2018,那么您希望将其拆分为三个单词,一个单词被定义为一系列非空白字符。符合这个描述的模式是这样的:

s = "3 august 2018"
d,m,y = s:match("(%S+)%s+(%S+)%s+(%S+)")
print(d,m,y)

请注意使用的match而不是gmatch,这意味着在循环中使用。


推荐阅读