Функция print
выводит свои аргументы с вкладками между ними (после преобразования их в строки с tostring
). Чтобы проверить это правильно, используйте io.write
(который не добавляет табуляции между своими аргументами и только конвертирует числа в строки):
str = ' 172.16.0.19 '
stripped = string.gsub(str, '%s+', '')
io.write('|', str, '|\n')
io.write('|', stripped, '|\n')
Обратите внимание, что это удалит все пробелы и символы новой строки, даже если они находятся внутри строки. Чтобы удалить их с любого конца:
str = string.gsub(str, '^%s*(.-)%s*$', '%1')
или на концах строк и конце строки:
str = string.gsub(str, '[ \t]+%f[\r\n%z]', '')