2013-09-23 2 views
0

Как я могу отрезать строку на многих частях. У меня есть строка, как:Вырезанная строка на многих частях

@abc = 'http://somesite.com/abcdrer/media/picture/abc.jpb' 

, и я знаю, что я могу сделать:

@str = @abc.index('/media') 

так что это будет возвращать индекс, где "/ СМИ" начинается (правда?). Теперь я должен удалить индекс от 0 до индекса, возвращаемого @str. Как удалить выбранный индекс из строки?

+4

Что именно вы хотите выход быть? ' "/media/picture/abc.jpb"'? –

+0

Я хочу удалить все, что есть до «/ media» – Wordica

ответ

2
@abc = 'http://somesite.com/abcdrer/media/picture/abc.jpb' 
@abc.slice(@abc.index("/media"), @abc.length) 
#=> "/media/picture/abc.jpb" 
-1

Split струнный и получить последний элемент массива:

@str = @abc.split("/media").last 
+0

OP хочет от «/ media» до конца. Это возвращает «/picture/abc.jpb». –

1

Regex сделает лучшую работу здесь. Он принимает от/СМИ до конца (0 к индексу «удален»)

@str = @abc[/\/media.*$/] 
+3

'' 'избыточно. – sawa

+2

Используйте% r для создания своего обычного выражения вместо bare /. Это поможет вам избежать «синдрома прилипшей зубочистки»: '% r {/ media. * $}'. И, как говорит @sawa, '' 'избыточно, делая следующее:'% r {/ media. *} '. –

3

Вы можете использовать регулярное выражение:

@str = @abc[%r{/media.+}] 
=> "/media/picture/abc.jpb" 
+3

Используйте '% r' для создания своего регулярного выражения вместо голого'/'. Это поможет вам избежать «синдрома прилипшей зубочистки»: '% r {/ media. +}'. –

+0

Хорошо оценили и включили. – depa

Смежные вопросы