grrr wrote:
I am a ruby newbie. I want to make a simple script that replaces certain
characters in a block of text with specific other characters.
I am wondering what kind of loop or algo is thought to be most effective
for this kind of work.. Maybe go through the block of text with a hashing table and replace
each 'hit'? Would this be reasonable approach?
#example pseudocode idea
blokoftxt = 'Theres some text in block.'
replacekey = { 'T' = 'W', 'a' = 'o', 'o' = 'a' }
blokoftxt.each ( if equal to a replacekey, replace with key value )
This would mean going through each character in the textblock. I guess one
could conversely go through the replacekey array and match to the
textblock?? Which way to go?
J Von Rubiginner
text = <<-ENDTEXT
The Owl and the Pussy-cat went to sea
In a beautiful pea green boat,
They took some honey, and plenty of money,
Wrapped up in a five pound note.
The Owl looked up to the stars above,
And sang to a small guitar,
'O lovely Pussy! O Pussy my love,
What a beautiful Pussy you are,
You are,
You are!
What a beautiful Pussy you are!'
ENDTEXT
replace_key = { 'O' => 'd', 'P' => 'w', 'b' => 'x'}
new_text = text.gsub(/[#{replace_key.keys.join}]/) {|match|
replace_key[match]
}
puts new_text
The result is:
The dwl and the wussy-cat went to sea
In a xeautiful pea green xoat,
They took some honey, and plenty of money,
Wrapped up in a five pound note.
The dwl looked up to the stars axove,
And sang to a small guitar,
'd lovely wussy! d wussy my love,
What a xeautiful wussy you are,
You are,
You are!
What a xeautiful wussy you are!'