Lua 替换大括号的正则表达式
Lua regex to replace curly braces
我想替换大括号和里面的单词,即 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("}", ""))
但是没用。但是,当我删除 "something in here " 时它确实有效。请帮忙。
要替换大括号内不包含任何其他大括号的所有子字符串,您可以使用
v:gsub("{[^{}]*}", ":id")
参见 Lua demo:
local v = "something in here {uid} {uid2}"
res, _ = v:gsub("{([^{}]*)}", ":id")
print(res)
-- something in here :id :id
{[^{}]*}
模式匹配 {
,然后是 {
和 }
以外的任意 0 个或多个字符,然后是 }
.
备选方案
我想替换大括号和里面的单词,即 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("}", ""))
但是没用。但是,当我删除 "something in here " 时它确实有效。请帮忙。
要替换大括号内不包含任何其他大括号的所有子字符串,您可以使用
v:gsub("{[^{}]*}", ":id")
参见 Lua demo:
local v = "something in here {uid} {uid2}"
res, _ = v:gsub("{([^{}]*)}", ":id")
print(res)
-- something in here :id :id
{[^{}]*}
模式匹配 {
,然后是 {
和 }
以外的任意 0 个或多个字符,然后是 }
.
备选方案