Регулярка помогите

extaup

Известный
Автор темы
158
56
Вообщем не шарю плотно в регулярке
Помогите отловить эту строчку, из неё нужно вытащить что поймали и кг

[Рыбалка] {FFFFFF}Вы успешно поймали {6AB1FF}"Лосось"{FFFFFF}. Масса: {6AB1FF}2.95 кг
 
Решение
Тест: https://onecompiler.com/lua/43cnnr3td
Справочники на рег.выражение в Lua: http://umodel.narod.ru/webhelp/ams/Program_Reference/Actions/RegExp_Lua.htm

Lua:
local fishRegex = '^%[Рыбалка%] Вы успешно поймали "(.*)"%. Масса: (%-?%d+%.?%d*) кг$'
local text = '[Рыбалка] {FFFFFF}Вы успешно поймали {6AB1FF}"Лосось"{FFFFFF}. Масса: {6AB1FF}2.95 кг' -- for test

-- onServerMessage
-- убираем цветные hex и лишние пробелы в начале
text = text
    :gsub('{%x%x%x%x%x%x}', '')
    :gsub('^%s+', '')
 
print(text) -- test remove hex

if text:find(fishRegex) then
  local item, weight = text:match(fishRegex)
  weight = tonumber(weight)
  local fmt = string.format('"%s", "%s"', item, weight)
  print(fmt)
end

Output:
[Рыбалка] Вы успешно...

kyrtion

Известный
1,113
404
Тест: https://onecompiler.com/lua/43cnnr3td
Справочники на рег.выражение в Lua: http://umodel.narod.ru/webhelp/ams/Program_Reference/Actions/RegExp_Lua.htm

Lua:
local fishRegex = '^%[Рыбалка%] Вы успешно поймали "(.*)"%. Масса: (%-?%d+%.?%d*) кг$'
local text = '[Рыбалка] {FFFFFF}Вы успешно поймали {6AB1FF}"Лосось"{FFFFFF}. Масса: {6AB1FF}2.95 кг' -- for test

-- onServerMessage
-- убираем цветные hex и лишние пробелы в начале
text = text
    :gsub('{%x%x%x%x%x%x}', '')
    :gsub('^%s+', '')
 
print(text) -- test remove hex

if text:find(fishRegex) then
  local item, weight = text:match(fishRegex)
  weight = tonumber(weight)
  local fmt = string.format('"%s", "%s"', item, weight)
  print(fmt)
end

Output:
[Рыбалка] Вы успешно поймали "Лосось". Масса: 2.95 кг
"Лосось", "2.95"
 
  • Вау
Реакции: vmprotect