Lua模式匹配:获取倒数第二个

我有一个字符串:

inString = 'first_second_third_fourth.xxx'

我想在第一部分(即“.”之前)中提取倒数第二个“单词”[其中下划线是单词分隔符]。

使用sed,我会做这样的事情:

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

我相信它很笨拙,但它可以工作。我该如何在Lua中做同样的事情?

点赞
用户107090
用户107090

尝试运行以下代码:

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

在两个 _ 之间出现一个不是最后一个词的单词,因此可以通过 _(.-)_ 找到它。请注意,此处的匹配不是贪婪的。

上面的模式会贪婪地跳过一切,直到最后一个不是最后一个的单词。

2018-07-26 13:59:44