Как получить строку (несколько слов) между символами - PullRequest
2 голосов
/ 10 апреля 2020

Здравствуйте, я пытаюсь получить строку между двумя скобками

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

Я хочу получить только Псевдоним: M c Джи

Я посмотрел везде, но все ответы, которые я видел, относятся к одиночным строкам и не работают с ()

Ответы [ 3 ]

4 голосов
/ 10 апреля 2020

Вы можете использовать %b шаблон , который позволяет указать скобки, которые вы хотите сопоставить:

str = "Reason = Failed to connect ( Nickname: Mc Gee ), Banned by: Andrew"
print(str:match("%b()"):gsub("[()]","")) -- prints ` Nickname: Mc Gee `
1 голос
/ 10 апреля 2020

Также

str = "Reason = Failed to connect ( Nickname: Mc Gee ), Banned by: Andrew"
print(str:match("%((.-)%)"))
0 голосов
/ 10 апреля 2020

Есть сложный ответ:

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

Надеюсь, это полезно ~

...