2015-08-12 2 views

ответ

1

Определите строку и массив:

s = "This is my example #foo and #bar" 
a = ['#foo', '#bar'] 

Тогда:

answer_array = (s.split(" ") - a).join(" ") 

дает ответ:

=> "This is my example and" 
+0

Thx, это работает, как предполагалось, и обрезает все ненужные пробелы! –

+0

Это не работает, если '' 'содержит два или более последовательных пробела или элемент' a' содержит ведущее или конечное пространство. Например, предположим, '' 'содержит заголовки столбцов:' s = "Name Age Ht Wt" и 'a = ['Age', 'Wt']'. Затем 'answer_array # =>" Name Age Ht Wt "'. –

0

Следующая сохраняющий пробельные:

str = 'This is my example #foo and #bar' 
arr = ['#foo','#bar'] 

r = Regexp.new arr.each_with_object('') { |s,str| str << s << '|' }[0..-2] 
    #=> /#foo|#bar/ 
str.gsub(r,'') 
    #=> "This is my example and " 

Другой пример (колонка метки):

str = " Name  Age  Ht  Wt" 
arr = ['  Age', '  Wt'] 

r = Regexp.new arr.each_with_object('') { |s,str| str << s << '|' }[0..-2] 
    #=>/  Age|  Wt/ 
str.gsub(r,'') 
    #=> " Name  Ht" 
Смежные вопросы