2012-04-03 2 views
3

Ich brauche ein Skript auszuführen, das den Ordnerpfad einer HTML-Datei neu schreiben wird, wird es viele Spiele, und die Ersatzzeichenfolge muss berechnet werden, so etwas wieGibt es eine gsub-Alternative für Ruby, die bei jeder Übereinstimmung eine Methode ausführen kann?

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

einziges Problem gsub ist, zumindest meines Wissens wird die ersetzung_methode() nur einmal ausgeführt, und ich brauche sie jedes Mal, wenn die gewünschte Ersetzungszeichenfolge in der Ordnerzeichenfolge auftritt.

Gibt es eine Möglichkeit, dies mit gsub zu tun? so etwas wie die Replace-Funktion in WordPress? Irgendwelche anderen realistischen Ansätze?

Antwort

11

Sie haben einen Block zu verwenden:

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

Der Block wird für jedes Spiel in der Zeichenfolge aufgerufen werden.

+0

danke! Das hat meinen Tag gerettet! – Saifis

Verwandte Themen