从Lua中的数据获取日、月、年

从Lua中的数据获取日、月、年,lua,Lua,我的数据格式:2018年8月3日 我需要从上述格式的数据中分别获取日、月和年 下一个片段被用来寻找一天。不幸的是,它不适用于错误“尝试连接字段'day'(函数值)。” 也许,这是一个错误的正则表达式。那么,什么样的正则表达式才能真正解决这个问题呢 此外,除了使用正则表达式外,是否还有其他解决方案?如果输入字符串是2018年8月3日的3,则您希望将其拆分为三个单词,一个单词被定义为一系列非空白字符。符合此描述的模式如下: s = "3 august 2018" d,m,y = s:match("(

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

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

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

也许,这是一个错误的正则表达式。那么,什么样的正则表达式才能真正解决这个问题呢


此外,除了使用正则表达式外,是否还有其他解决方案?

如果输入字符串是2018年8月3日的
3
,则您希望将其拆分为三个单词,一个单词被定义为一系列非空白字符。符合此描述的模式如下:

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

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

s=“2018年8月3日”;d、 m,y=s:match“(%d+)[-/.s]+(%w+)[-/.s]+(%d+)”
Hi@Egor我注意到您通常会在注释中回答。为什么不发布一个答案,让其他人知道问题已经解决了?还有,这样OP就可以标记为正确,而不是只留下评论?@Brian-说来话长。。。顺便说一句,请随意根据我的评论发布答案,我会在不再需要我的评论后删除它们。@EgorSkriptunoff,谢谢。但是我这个月有问题。不管怎样,我已经理解了情节。所以,我写了:exampleArray[“day”]=exampleArray[“data”]:匹配“(%d+)[-/.s]”;exampleArray[“月”]=string.gsub(exampleArray[“数据”],“[^a-z],”);exampleArray[“year”]=exampleArray[“data”]:匹配(“%d%d%d%d”)。是的,俄语符号与
%w
不匹配。使用
[^%s%p]+
而不是
%w+
。示例:
s=“3жаааааааааааа1072;d、 m,y=s:匹配“(%d+)[-/.%s]+([^%s%p]+)[-/.%s]+(%d+)”
s = "3 august 2018"
d,m,y = s:match("(%S+)%s+(%S+)%s+(%S+)")
print(d,m,y)