У меня есть вход в следующем формате:Как «подушечка» строка переменной длины, чтобы иметь выровненную последний столбец
09:08:11 XXXXXXXXXXXXX 1.1.1.1
09:09:03 YYYYYYYY 2.2.2.2
09:12:37 ZZZZ 3.3.3.3
Я могу извлечь эти индивидуумы поля легко с использованием регулярного выражения /(\S+)\s+(\S+)\s+(\S+)\s+/
. Я назвал их $time
, $name
и $number
. Моя проблема заключается в том, что я хочу отобразить это так, чтобы $number
идеально сочетался. Потому что $name
может быть любой длины, что является лучшим решением для этого?
Я хотел бы, чтобы результат выглядел следующим образом. Обратите внимание, что мне нужно было использовать точки для выравнивания последнего поля, так как я не мог использовать пробел для этого, не знаю почему. Anyhoo.
09:08:11 XXXXXXXXXXXXX 1.1.1.1
09:09:03 YYYYYYYY 2.2.2.2
09:12:37 ZZZZ 3.3.3.3
Я думал о помещении $name
в массив. И затем используйте функцию, чтобы найти ту, которая имеет самый длинный счетчик символов. Наконец, я бы выбрал более короткое имя, чтобы соответствовать самому длинному имени. Есть ли лучший и эффективный способ сделать это?
Используйте опцию форматирования кода, чтобы указать, что шрифт фиксированной ширины и предварительная форматирование должны использоваться. :) – Amber
Я просто делал это редактирование на своем телефоне, пока не понял, что это слишком сложно. –
Являются ли цифры всегда по одной цифре? Если нет, что вы хотите сделать? –