没有gsub替换字符串的优雅方法是什么?

Cod*_*ver 1 ruby string replace gsub

我有一些动态字符串,它们有一个X字符.X可以连续出现或通过字符串分散.我想,以取代那些X#.

例如,abXXcX12XX.我想要ab#c#12#.这意味着多个连续X必须仅由一个替换#,如果只有一个X,则也由一个替换#.

我试过了:

s = "aXX123Xc56XXX"
s.squeeze('X').gsub('X','#') # => "a#123#c56#"
Run Code Online (Sandbox Code Playgroud)

任何优雅的方式或直接的方法来做同样的操作?

Aru*_*hit 12

我将使用String#tr_s如下方式:

按照下面的描述处理str的副本String#tr,然后删除受转换影响的区域中的重复字符.

s = "aXX123Xc56XXX"
s.tr_s('X','#') # => "a#123#c56#"
Run Code Online (Sandbox Code Playgroud)