2016-04-02 88 views
0

我需要用索引替换字符串中的所有特殊字符。 例如,用其索引替换特殊字符

"[email protected]$all%special^characters^" 

应该变成:

"I1need6to9change16all20special28characters39" 

所有特殊字符的指数不同。 我查看了很多链接replacing all with single character,occurances of a character。 我发现非常相似的链接,但我不想采用这些replace its index number,因为我需要替换所有的特殊字符。

我也试图做这样的事情:

str.gsub!(/[^0-9A-Za-z]/, '') 

这里str是我的榜样字符串。 由于这将替换所有的字符,但空间,我想索引,而不是空间。要么所有的特殊字符或这七个

\/*[]:? 

我需要更换为主这七年,但如果我们全部更换他们,这将是确定。

我需要一个更简单的方法。

在此先感谢。

+0

什么是'str'? ..... – sawa

+0

str是字符串(“I-need_to @ change $ all%special^characters ^”)。 – Manishh

回答

2

您可以使用全局变量$`gsub块形式:

irb> str = "[email protected]$all%special^characters^" 
=> "[email protected]$all%special^characters^" 
irb> str.gsub(/[^0-9A-Za-z]/) { $`.length } 
=> "I1need6to9change16all20special28characters39"