#ruby-on-rails #ruby #regex
#ruby-on-rails #ruby #регулярное выражение
Вопрос:
gsub(/^/, "t" * num)
Какой символ заменяется?
Ответ №1:
Никакой символ не заменяется, он просто вставляет num
табуляции в начале, так что вы могли бы сказать, что он заменяет маркер нулевой ширины «начало строки». Кто бы это ни написал, было бы лучше, если бы было что-то более похожее на это:
tabbed = "t" * num original
Регулярное выражение действительно не является подходящим инструментом для простой конкатенации строк.
Уточнение: Если вы ожидаете, что ваша строка будет содержать несколько строк, то с помощью:
gsub(/^/, "t" * num)
добавлять ко всем строкам табуляции в качестве префикса — разумное решение, менее шумное, чем разделение, добавление префиксов и повторное объединение. Если вы ожидаете иметь дело только с одной строкой в вашей строке, то лучшим выбором будет простая конкатенация строк.
Ответ №2:
^
означает «начало строки» в синтаксисе регулярных выражений, так что это позволит вставлять num
символы табуляции в начале каждой строки. Технически можно сказать, что это заменяет пустую строку в начале каждой строки.