lua - Lua 模式匹配:获得倒数第二
问题描述
我有一个字符串:
inString = 'first_second_third_fourth.xxx'
我想在第一部分['.'之前]中提取倒数第二个'单词'[其中下划线是单词分隔符]
使用 sed,我会执行以下操作:
echo $inString | sed -E 's/^.*_.*_(.*)_.*\.xxx$/\1/'
我敢肯定这很笨拙,但它确实有效。我如何对 Lua 做同样的事情?
解决方案
尝试
print(inString:match(".+_(.-)_"))
一个不是最后一个的单词出现在两个之间_
,因此被 找到_(.-)_
。注意这里的匹配不是贪婪的。
上面的模式贪婪地跳过所有内容,直到最后一个不是最后一个单词。
推荐阅读
- coq - 在 Coq 中,相等意味着小于或等于
- vb.net - 在 Visual Basic 中查找点后的第一个字母
- c++ - 为什么数组的大小在主函数和其他函数中不同?
- java-8 - 我无法更改 JAVA_HOME 环境变量,这就是我尝试删除它但仍在 cmd 中显示 JAVA_HOME env var 值的原因
- c - 这个交换功能有什么问题
- hyperledger-fabric - 使用 hyperledge fabric ,我遇到“Scripts / createchannel.sh: line 40: osnadmin: command not found”
- azure-cosmosdb - Cosmos DB 连接器延续令牌太大
- html - Flexbox 将 div 向右移动而不影响其他 div
- javascript - 从外部 html 文件运行 javascript
- java - 如何在 Java (android) 中自定义 SimpleDateFormat() 的日期格式?