Чисто из любопытства, есть ли более элегантный способ просто получить подстроку после первого символа =
в строке? Следующие действия возвращают name=bob
:
string = "option=name=bob"
string[string.index('=')+1..-1]
Он просто не очень похож на Ruby. Это также работает:
string.split('=', 2)[1]
Опять же, не очень элегантно, потому что split
делает лишнюю ненужную работу. Отвечают ли регулярные выражения? Я чувствовал, что это немного переборщило для простоты нахождения единственной позиции символа в строке:
string.match('=(.*)')[1]
Я должен представить, что это чрезвычайно распространенная ситуация, не существует ли метод типа string.after('=')
? Предоставляет ли Ruby on Rails что-то подобное, учитывая частоту, которую этот вид работы используется в Интернете?
ОБНОВЛЕНИЕ: забыл упомянуть ситуацию, когда символ не найден, nil
или пустая строка должна быть возвращена. Но механизм регулярного выражения и метод .index
требуют дополнительной проверки для этого (поэтому менее элегантного).