2012-05-29 4 views
0

нашел новый способ с дампом php базы данных mysql и 15 строками lua, без поиска паттерна. Мод может удалить это.Игнорировать определенный шаблон в Lua (garry's mod lua 5.1)

Я пытаюсь разделить это на отдельные части таблицы, но я не могу понять, как заставить шаблон игнорировать определенную вещь.

local output = "<tr><td>ABAH</td><td>A Basic Anti Hack</td><td><a href=\"mailto:[email protected]\">Clark</a></td><td><a href=\"plugins/12/sv_abah.lua\">Download</a>" 

for plugin in output:gmatch("<tr>(.-%S)Download</a>") do 
    --print(plugin) 
    for title in plugin:gmatch("<td>(.-%S)</td><td>") do 
     print(title) 
    end 
    for description in plugin:gmatch("</td><td>(.-%S)</t") do 
     print(description) 
    end 
end 

До сих пор он выводит название и описание, но и выводит ссылку почты, как я могу сделать это игнорировать это?

Выходы:

1.ABAH 
2.<a href="mailto:[email protected]">Clark</a> 
3.A Basic Anti Hack 

я использовал http://codepad.org/XQ6rZ6ZM для тестирования.

+0

Прежде всего, Lua не обеспечивает регулярные выражения в стандартной библиотеке. Он предоставляет шаблоны, которые * слабее *, чем реальные регулярные выражения. Во-вторых, *** Прекратите использование сопоставления шаблонов для разбора HTML/XML! *** Если вы хотите разобрать этот материал, получите * реальный парсер *. –

+0

Какой будет настоящий парсер? Я забыл упомянуть, что использую его в игре под названием Garry's Mod. – generalwrex

+0

Если бы вы могли ответить и принять свой вопрос, другие могут также воспользоваться решением, которое вы нашли. – jpjacobs

ответ

0

Есть ли какая-то причина, почему вы не можете просто применить другой шаблон, чтобы вычистить HTML, например:

local output = "<tr><td>ABAH</td><td>A Basic Anti Hack</td><td><a href=\"mailto:[email protected]\">Clark</a></td><td><a href=\"plugins/12/sv_abah.lua\">Download</a>" 

for plugin in output:gmatch("<tr>(.-%S)Download</a>") do 

     for title in plugin:gmatch("<td>(.-%S)</td><td>") do    
     title= title:gsub('<.->','') 
     print(title) 
     end 
     for description in plugin:gmatch("</td><td>(.-%S)</t") do 
     description = description:gsub('<.->','')  
     print('description) 
     end 

end