如何获取括号中的字符串(多个字)

嗨,我正在尝试获取括号之间的字符串

str = "Reason = Failed to connect ( Nickname: Mc Gee ), Banned by: Andrew"

我只想得到_Nickname: Mc Gee_

我已经到处寻找答案,但我看到的所有答案都是针对单词字符串的,不能用()

点赞
用户1442917
用户1442917

你可以使用 %b pattern 来指定你想匹配的括号:

str = "Reason = Failed to connect ( Nickname: Mc Gee ), Banned by: Andrew"
print(str:match("%b()"):gsub("[()]","")) -- 输出 ` Nickname: Mc Gee `
2020-04-09 21:58:04
用户7556173
用户7556173

有一个复杂的回答:

local str = "Reason = Failed to connect ( Nickname: Mc Gee ), Banned by: Andrew"
print(string.match(str, "Reason = [%a%s]+%([%a%s]+:%s+(.*)%s+%).*"))
-- Mc Gee

希望它有用~

2020-04-10 04:34:15
用户107090
用户107090
str = "Reason = Failed to connect ( Nickname: Mc Gee ), Banned by: Andrew"
print(str:match("%((.-)%)"))

也就是说:

str = "失败原因 = 无法连接 (昵称:麦基), 被禁止连接的人: 安德鲁"
print(str:match("%((.-)%)"))
2020-04-10 10:34:17