У меня есть переменная e.logable_type
, и я хочу взять слово «Работа» из каждого.Каков наилучший способ удалить слово из строки в Ruby?
Я попытался e.logable_type.delete "Work"
Но избавившись от всех ш, о, г, и к буквам, а не слово.
Спасибо!
У меня есть переменная e.logable_type
, и я хочу взять слово «Работа» из каждого.Каков наилучший способ удалить слово из строки в Ruby?
Я попытался e.logable_type.delete "Work"
Но избавившись от всех ш, о, г, и к буквам, а не слово.
Спасибо!
Вероятно, это лучшее, что можно сделать:
e.logable_type.gsub("Work", "")
Вы не должны использовать' ''. Зарезервируйте их, когда вам нужно выполнить интерполяцию. – screenmutt
@screenmutt (и кто бы ни продвигал этот комментарий) Вы можете сказать: что разработчикам Ruby в отношении стандарта проверки по умолчанию для строки. На самом деле, из вашего комментария, я могу сказать, что вы на начальном уровне. – sawa
Вы имеете в виду '' string'.inspect'? Потому что это меня раздражает. Но я всегда слышал, если вы не выполняете интерполяцию, используйте одиночные кавычки. – screenmutt
Попробуйте это:
'work work and do not work with me'.gsub 'work', ''
Это не имеет смысла. Он не влияет на какую-либо переменную, и он (всегда) возвращает измененную строку. – sawa
@sawa, да (ноль), под редакцией. И я показал использование метода, которое можно легко применить к вопросу. –
Тем, кто не видел версию этого ответа перед редактированием: Ответ сказал: «Работайте и не работайте со мной». «работа», «». – sawa
Я предполагаю, что есть много способов сделать это, но вот еще два. Эти те, которые не будут удалены частичные слова:
Метод 1
'The Workers Work At Their Work'.gsub /\bWork\b/, ''
=> "The Workers At Their "
Метод 2
('The Workers Work At Their Work'.split - ['Work']).join ' '
=> "The Workers At Their"
Почему мы не можем использовать что-то вроде этого, которое позволит избежать удаления слова «работник».
irb(main):003:0> "thisis worker time".gsub(" work ","")
=> "thisis worker time"
вместо ...
irb(main):002:0> "thisis worker time".gsub("work","")
=> "thisis er time"
Параметр '' sub' и gsub' методы хороши для этого. – vgoff
каждый выбирает свой лучший метод и технику, достаточно изучить документацию и посмотреть примеры других людей. –
Если вы применяете 'gsub' к« Нет никакого отрицания, что работа - это работа работника », вы получаете' s = «Нет никакого отрицания, что это работа er». «Если по какой-то причине вам не нужно дополнительное пространство после 'that' и 'a' (не показано редактором SO), выполните следующее: 's = s.split.join ('')'. –