Как заменить скобки в Lua с помощью string.gsub?

У меня есть функция, которая используется для замены некоторых слов несколькими символами или цифрами. Я использую функцию string.gsub() таким образом:

string.gsub(line, "[0-9%a%s/,-]+", "\t")

Это очень хорошо работает со строками с цифрами, буквами, пробелами, , и /. Я также хотел бы заменить скобки, такие как ( и ). Но просто вставить () в мой шаблон не получится. Я также пробовал с %( и %), но безуспешно. Как я могу заменить скобки в Lua, используя шаблон в методе string.gsub()?


person woyaru    schedule 31.07.2012    source источник


Ответы (1)


Единственные символы, которые нужно экранировать внутри [], это []%-, все они экранируются с помощью %. Таким образом, экранирование - работает следующим образом:

string.gsub(line, "[0-9%a%s/,%-()]+", "\t")

Также, вероятно, стоит упомянуть, что [0-9%a] эквивалентно [%d%a], что эквивалентно %w.

person furq    schedule 31.07.2012