Есть ли Regex Delete в Ruby?

Все мои строки delete с regex используют gsub, есть ли более короткий путь? string.gsub(/\A.*\//,'')

Ответ 1

Один из способов - добавить свои собственные короткие методы:

class String

  def del(regexp)
    gsub(regexp,'')
  end

  def del!(regexp)
    gsub!(regexp,'')
  end

end

Обычно этот код будет находиться в каталоге lib/, например lib/string-extensions.rb

Направляет на то, что некоторым программистам это очень не нравится, потому что это исправление обезьяны. Мне лично это нравится для проектов, потому что это упрощает понимание кода - как только у меня есть метод "del", я могу быстро увидеть, что его вызовы просто удаляют регулярное выражение.

Ответ 2

Вместо этого вы можете указать часть строки, которую хотите сохранить.,.

string[/[^\/]*$/]

Ответ 3

Я так не думаю.

String:: delete удаляет символы и не соответствует регулярному выражению, это совершенно другой подход.

Единственный способ, которым я могу думать о том, чтобы сделать эту строку "короче", - это использовать string.gsub!(/\A.*\//,'') (обратите внимание на там).

Чтобы идти, я думаю:)