Кодирах програма в Lua, която автоматично форматира IRC регистрационни файлове от ролева игра. В регистрационните файлове на ролевите игри има конкретна насока за разговор „Извън характера“, за който използваме двойни скоби. Например: ((<Things unrelated to roleplay go here>))
. Опитвам се да накарам моята програма да премахне текст между двойни скоби (и включително и двете скоби). Кодът е:
ofile = io.open("Output.txt", "w")
rfile = io.open("Input.txt", "r")
p = rfile:read("*all")
w = string.gsub(p, "%(%(.*?%)%)", "")
ofile:write(w)
Моделът тук е > "%(%(.*?%)%)"
Опитах множество варианти на модела. Всичко доведе до безплодни резултати:
1. %(%(.*?%)%) --Wouldn't do anything.
2. %(%(.*%)%) --Would remove *everything* after the first OOC message.
Тогава моят приятел ми каза, че добавянето на скоби с проценти няма да работи и че трябва да използвам обратни наклонени черти, за да „избягам“ от скобите.
3. \(\(.*\)\) --resulted in the output file being completely empty.
4. (\(\(.*\)\)) --Same result as above.
5. (\(\(.*?\)\) --would for some reason, remove large parts of the text for no apparent reason.
6. \(\(.*?\)\) --would just remove all the text except for the last line.
Краткият, категоричен въпрос: Какъв образец трябва да използвам, за да премахна целия текст между двойните скоби и да премахна самите двойни скоби?