LUA 模式匹配日期

我正在努力寻找正确的 LUA 代码,以便检测两个日期是否相邻。

我有一些类似的代码,可以检测两个关键字,但在我的日期上不起作用。

以下是我目前拥有的 LUA 代码:

(%a+) %- %1$

谢谢,

点赞
用户3832970
用户3832970

你的主要问题在于你想要用 %a+ 模式匹配一个像 2017-03-19 这样的日期。%a 匹配一个字母,%a+ 则匹配一个或多个字母。

你需要使用一个更精确的模式来替换这个模式,比如 %d+%-%d+%-%d+%d%d%d%d%-%d%d%-%d%d

'(%d+%-%d+%-%d+) %- %1'

其中 %d 匹配一个数字。

现在,如果你想匹配整个字符串,你需要用 ^$ 锚定符把模式括起来。

'^(%d+%-%d+%-%d+) %- %1$'

如果你想添加单词边界,

 '%f[%d](%d+%-%d+%-%d+) %- %1%f[%D]'
2017-03-15 18:25:18