You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Lua的string.gsub函数提取字符串中指定括号内的内容?

Lua 提取字符串中指定内容的方法

针对你给出的字符串Fishing Lure(+100 Fishing Skill)(1 hour),要提取最后的“1 hour”,可以用以下方式实现:

用 string.match 提取(更直接)

string.match专门用于从字符串中匹配并提取内容,比gsub更适合这个场景:

local str = "Fishing Lure(+100 Fishing Skill)(1 hour)"
local target = string.match(str, "%(([^%)]+)%)$")
print(target) -- 输出:1 hour

模式%(([^%)]+)%)$的含义:

  • %(:匹配左括号(括号是Lua模式中的特殊字符,需用%转义)
  • ([^%)]+):捕获一个或多个不是右括号的字符,也就是括号内的目标内容
  • %):匹配右括号
  • $:锚定到字符串结尾,确保匹配的是最后一对括号

用 string.gsub 实现(按你的需求)

如果一定要用gsub,可以通过替换整个字符串为捕获的目标内容来达到提取效果:

local str = "Fishing Lure(+100 Fishing Skill)(1 hour)"
local target = string.gsub(str, "^.*%(([^%)]+)%)$", "%1")
print(target) -- 输出:1 hour

模式^.*%(([^%)]+)%)$的含义:

  • ^.*:从字符串开头开始,贪婪匹配到最后一个左括号之前的所有内容
  • 后面的%(([^%)]+)%)$和上面的含义一致,匹配最后一对括号及其内容
  • %1:将整个字符串替换为第一个捕获组的内容,也就是我们要的“1 hour”

内容的提问来源于stack exchange,提问作者user3204810

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 00:33:15