Парсинг одинаковых строк

#Kai-

Известный
Автор темы
705
292
Версия MoonLoader
.026-beta
Есть переменная такого вида:

Lua:
local Text = {
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit [123]
    Lorem ipsum dolor sit amet, consectetur adipiscing elit4 [124]
    Lorem ipsum dolor sit amet, consectetur adipiscing eli5 [125]
    Lorem ipsum dolor sit amet, consectetur adipiscing eli6 [126]"
}
--Текст может отличаться и повторяться точ в точ.

каким образом мне каждую строчку данного текста записывать в отдельную переменную?

Lua:
local text1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
local number1 = 123

local text2 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit4"
local number2 = 124

local text3 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit5"
local number3 = 125

local text4 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit6"
local number4 = 126

Простейший пример
 
Решение
У меня проблема вылезла, не весь текст имеет цифры в [123], иногда встречается без этого, просто текст
Нужно было это сразу писать
Lua:
local text = [[Lorem ipsum dolor sit amet, consectetur adipiscing elit [123]
Lorem ipsum dolor sit amet, consectetur adipiscing elit4 [124]
Lorem ipsum dolor sit amet, consectetur adipiscing eli5 [125]
Lorem ipsum dolor sit amet, consectetur adipiscing eli6 [126]
Lorem ipsum dolor sit amet, consectetur adipiscing elit4 ]]
local massive = {}
for n in text:gmatch('[^\r\n]+') do
    if n:find('(.+) %[(%d+)%]') then
        local text, number = n:match('(.+) %[(%d+)%]')
        table.insert(massive, {number = number, text = text})
    else
        table.insert(massive, {number = number, text = n})
    end
end...

CaJlaT

07.11.2024 14:55
Модератор
2,830
2,660
Есть переменная такого вида:

Lua:
local Text = {
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit [123]
    Lorem ipsum dolor sit amet, consectetur adipiscing elit4 [124]
    Lorem ipsum dolor sit amet, consectetur adipiscing eli5 [125]
    Lorem ipsum dolor sit amet, consectetur adipiscing eli6 [126]"
}
--Текст может отличаться и повторяться точ в точ.

каким образом мне каждую строчку данного текста записывать в отдельную переменную?

Lua:
local text1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
local number1 = 123

local text2 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit4"
local number2 = 124

local text3 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit5"
local number3 = 125

local text4 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit6"
local number4 = 126

Простейший пример
Ну во-первых, многострочный текст не пишется в обычных кавычках.... Для него нужно использовать двойные квадратные скобки. А во-вторых, используй массив.
Lua:
local text = [[Lorem ipsum dolor sit amet, consectetur adipiscing elit [123]
Lorem ipsum dolor sit amet, consectetur adipiscing elit4 [124]
Lorem ipsum dolor sit amet, consectetur adipiscing eli5 [125]
Lorem ipsum dolor sit amet, consectetur adipiscing eli6 [126] ]]
local massive = {}
for n in text:gmatch('[^\r\n]+') do
    local text, number = n:match('(.+) %[(%d+)%]')
    massive[number] = text
end
for i, v in pairs(massive) do
    print(i, v)
end

1619776956247.png
 
  • Нравится
Реакции: #Kai-

#Kai-

Известный
Автор темы
705
292
Ну во-первых, многострочный текст не пишется в обычных кавычках.... Для него нужно использовать двойные квадратные скобки. А во-вторых, используй массив.
Lua:
local text = [[Lorem ipsum dolor sit amet, consectetur adipiscing elit [123]
Lorem ipsum dolor sit amet, consectetur adipiscing elit4 [124]
Lorem ipsum dolor sit amet, consectetur adipiscing eli5 [125]
Lorem ipsum dolor sit amet, consectetur adipiscing eli6 [126] ]]
local massive = {}
for n in text:gmatch('[^\r\n]+') do
    local text, number = n:match('(.+) %[(%d+)%]')
    massive[number] = text
end
for i, v in pairs(massive) do
    print(i, v)
end

Посмотреть вложение 95196
Lua:
text:gmatch('[^\r\n]+') -- что за регулярки?
 

#Kai-

Известный
Автор темы
705
292
Если грубо, то разделяет каждую строку в отдельную переменную
Посмотреть вложение 95219
У меня проблема вылезла, не весь текст имеет цифры в [123], иногда встречается без этого, просто текст
Lua:
local text = [[Lorem ipsum dolor sit amet, consectetur adipiscing elit [123]
Lorem ipsum dolor sit amet, consectetur adipiscing elit4 ]]
Как только находится текст без цифр, то выдает nil и скрипт крашит...
 

CaJlaT

07.11.2024 14:55
Модератор
2,830
2,660
У меня проблема вылезла, не весь текст имеет цифры в [123], иногда встречается без этого, просто текст
Нужно было это сразу писать
Lua:
local text = [[Lorem ipsum dolor sit amet, consectetur adipiscing elit [123]
Lorem ipsum dolor sit amet, consectetur adipiscing elit4 [124]
Lorem ipsum dolor sit amet, consectetur adipiscing eli5 [125]
Lorem ipsum dolor sit amet, consectetur adipiscing eli6 [126]
Lorem ipsum dolor sit amet, consectetur adipiscing elit4 ]]
local massive = {}
for n in text:gmatch('[^\r\n]+') do
    if n:find('(.+) %[(%d+)%]') then
        local text, number = n:match('(.+) %[(%d+)%]')
        table.insert(massive, {number = number, text = text})
    else
        table.insert(massive, {number = number, text = n})
    end
end
for i, v in ipairs(massive) do
    print(v.number, v.text)
end

1619783390193.png

Скрипт не крашнет
 
  • Нравится
Реакции: #Kai-