2013-11-15 4 views
-1

У меня есть переменная e.logable_type, и я хочу взять слово «Работа» из каждого.Каков наилучший способ удалить слово из строки в Ruby?

Я попытался e.logable_type.delete "Work"

Но избавившись от всех ш, о, г, и к буквам, а не слово.

Спасибо!

+5

Параметр '' sub' и gsub' методы хороши для этого. – vgoff

+0

каждый выбирает свой лучший метод и технику, достаточно изучить документацию и посмотреть примеры других людей. –

+0

Если вы применяете 'gsub' к« Нет никакого отрицания, что работа - это работа работника », вы получаете' s = «Нет никакого отрицания, что это работа er». «Если по какой-то причине вам не нужно дополнительное пространство после 'that' и 'a' (не показано редактором SO), выполните следующее: 's = s.split.join ('')'. –

ответ

3

Вероятно, это лучшее, что можно сделать:

e.logable_type.gsub("Work", "") 
+3

Вы не должны использовать' ''. Зарезервируйте их, когда вам нужно выполнить интерполяцию. – screenmutt

+0

@screenmutt (и кто бы ни продвигал этот комментарий) Вы можете сказать: что разработчикам Ruby в отношении стандарта проверки по умолчанию для строки. На самом деле, из вашего комментария, я могу сказать, что вы на начальном уровне. – sawa

+0

Вы имеете в виду '' string'.inspect'? Потому что это меня раздражает. Но я всегда слышал, если вы не выполняете интерполяцию, используйте одиночные кавычки. – screenmutt

2

Попробуйте это:

'work work and do not work with me'.gsub 'work', '' 
+1

Это не имеет смысла. Он не влияет на какую-либо переменную, и он (всегда) возвращает измененную строку. – sawa

+1

@sawa, да (ноль), под редакцией. И я показал использование метода, которое можно легко применить к вопросу. –

+1

Тем, кто не видел версию этого ответа перед редактированием: Ответ сказал: «Работайте и не работайте со мной». «работа», «». – sawa

1

Я предполагаю, что есть много способов сделать это, но вот еще два. Эти те, которые не будут удалены частичные слова:

Метод 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" 
0

Почему мы не можем использовать что-то вроде этого, которое позволит избежать удаления слова «работник».

irb(main):003:0> "thisis worker time".gsub(" work ","") 
=> "thisis worker time" 

вместо ...

irb(main):002:0> "thisis worker time".gsub("work","") 
=> "thisis er time" 
Смежные вопросы