Selectively replace multiple instances of a character within a string: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|Ruby}}: Add Ruby) |
||
Line 1,082: | Line 1,082: | ||
</pre> |
</pre> |
||
=={{header|Ruby}}== |
|||
<syntaxhighlight lang="ruby">str = "abracadabra" |
|||
rules = [ |
|||
["a", 1, "A"], |
|||
["a", 2, "B"], |
|||
["a", 4, "C"], |
|||
["a", 5, "D"], |
|||
["b", 1, "E"], |
|||
["r", 2, "F"]] |
|||
indices = Hash.new{[]} |
|||
str.each_char.with_index{|c, i| indices[c] <<= i} |
|||
rules.each{|char, i, to| str[indices[char][i-1]] = to} |
|||
p str</syntaxhighlight> |
|||
{{out}} |
|||
<pre>"AErBcadCbFD" |
|||
</pre> |
|||
=={{header|sed}}== |
=={{header|sed}}== |
||
<syntaxhighlight lang="sed">s/a\([^a]*\)a\([^a]*a[^a]*\)a\([^a]*\)a/A\1B\2C\3D/ |
<syntaxhighlight lang="sed">s/a\([^a]*\)a\([^a]*a[^a]*\)a\([^a]*\)a/A\1B\2C\3D/ |