Я кодировал программу в Lua, которая автоматически форматирует журналы IRC из ролевой игры. В журналах ролевых игр существует конкретная рекомендация для разговора «Вне характера», для которой мы используем двойные круглые скобки. Например: ((<Things unrelated to roleplay go here>))
. Я пытался, чтобы моя программа удаляла текст между двойными скобками (и включала обе скобки). Код:Lua pattern help (Двойные скобки)
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.
Короткий, абсолютный вопрос: Какой шаблон мне нужно использовать, чтобы удалить весь текст между двойными скобками, и удалить себя двойные круглые скобки тоже?
Это регулярные выражения, а не шаблоны проектирования. –