首页 > 解决方案 > Lua 模式匹配:获得倒数第二

问题描述

我有一个字符串:

inString = 'first_second_third_fourth.xxx'

我想在第一部分['.'之前]中提取倒数第​​二个'单词'[其中下划线是单词分隔符]

使用 sed,我会执行以下操作:

echo $inString | sed -E 's/^.*_.*_(.*)_.*\.xxx$/\1/'

我敢肯定这很笨拙,但它确实有效。我如何对 Lua 做同样的事情?

标签: lua

解决方案


尝试

print(inString:match(".+_(.-)_"))

一个不是最后一个的单词出现在两个之间_,因此被 找到_(.-)_。注意这里的匹配不是贪婪的。

上面的模式贪婪地跳过所有内容,直到最后一个不是最后一个单词。


推荐阅读