【发布时间】:2020-01-07 07:08:43
【问题描述】:
我想替换花括号和里面的单词,即something in here {uid} {uid2} 到something in here :id :id。
我尝试了以下方法:
local v = "something in here {uid} {uid2}"
local regex = "^{([^}]+)}"
print(v:gsub(v:match(regex), ":id"):gsub("{", ""):gsub("}", ""))
但它不起作用。但是,当我删除“这里的东西”时它确实有效。请帮忙。
【问题讨论】:
-
^表示字符串开始。如果您不想将匹配限制为仅出现在开头,请将其删除。 -
@WiktorStribiżew 这不是全球性的吗?我的意思是对于 url
/api/{parentId}/{childId},我得到了`/api/data/lookups/something/childId`。那个 childId 没有被替换。 -
不,
^并不意味着全局。另外,我认为您只需要v:gsub("{[^{}]*}", ":id"),请参阅demo -
非常感谢@WiktorStribiżew。你能告诉我如何用花括号替换所有单词吗?我是lua模式的新手,所以我还在学习。如果您指导/告诉我,这将是一个很大的帮助。
-
@WiktorStribiżew 哦抱歉没有看到演示
标签: regex lua lua-patterns