2012-04-03 1 views
3

мне нужно запустить скрипт, который будет переписывать путь к папке в виде HTML-файла, будет много матчей, и замена строки должна быть вычислена, что-то вродеЕсть ли альтернатива gsub для ruby, которая может запускать метод каждый раз, когда производится совпадение?

"Html string".gsub(/images/([a-zA-Z0-9\-]+)/, "/images/#{replacement_method($1)}/") 

Единственная проблема заключается в GSUB, по крайней мере, Насколько мне известно, будет запускаться только один раз replace_method(), и мне нужно, чтобы он запускался каждый раз, поскольку требуемые изменения строки замены происходят в строке папок.

Есть ли способ сделать эту работу с gsub? что-то вроде функции replace в wordpress? Любые другие реалистичные подходы?

ответ

11

Вы должны использовать блок:

"Html string".gsub(/images/(folder)/) { |match| "/images/#{replacement_method(match)}/" } 

Блок будет вызываться для каждого матча в строке.

+0

спасибо! это спасло мой день! – Saifis

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