gpt4 book ai didi

lua - 如何使用模式忽略lua中输入字符串的某些部分?

转载 作者:行者123 更新时间:2023-12-01 23:30:01 24 4
gpt4 key购买 nike

背景信息

我有一个 csv 文件,其中的行如下所示:

+11231231234,13:00:00,17:00:00,1111100,12345,test.net
+11231231234,,,0000000,23456,test.net
+11231231234,18:00:00,19:00:00,1111100,09991,test.net

我现在的lua模式是这样的:

local id, start_time, end_time, asd, int, domain = line:match("(%+%d+),([%d%d:]*),([%d%d:]*),(%d*),([%d%*%#]*),(%a*.*)")

及其工作

问题

如何更改此模式以便如果存在 start_time/end_time 值,我只想提取前两组数字?因此,例如,从这个输入:

+11231231234,18:00:00,19:00:00,1111100,09991,test.net

我想以这些值结束:

start_time = 18:00
end_time = 19:00

代替

start_time = 18:00:00
end_time = 19:00:00

我尝试过的

我试过改变这个:

line:match("(%+%d+),([%d%d:]*),([%d%d:]*),(%d*),([%d%*%#]*),(%a*.*)")

为此:

line:match("(%+%d+),([%d%d:%d%d]*),([%d%d:%d%d]*),(%d*),([%d%*%#]*),(%a*.*)")

但这是不行的

编辑 1

我把模式改成这样:

 line:match("(%+%d+),(%d*:?%d*)[%d:]*,(%d*:?%d*)[%d:]*,(%d*),([%d%*#]*),(%S*)")

在某些情况下,它可以工作......但在以下情况下,它会失败:

  +11231231234,00:00:00,00:00:00,1111100,12345,test.net

因此,当时间戳全面为零时,它不会正确地调整秒数。我目前正在审查代码以确保它不是我的拼写错误。谢谢。

最佳答案

local id, start_time, end_time, asd, int, domain = 
line:match("(%+%d+),(%d*:?%d*)[%d:]*,(%d*:?%d*)[%d:]*,(%d*),([%d%*#]*),(%S*)")

关于lua - 如何使用模式忽略lua中输入字符串的某些部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39919850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com