WEBRADAR

Rubyで文字列を文字数分を伏せ字にする方法

普通にgsubでやると◯◯君と返したいところが◯君と表示され
文字数が考慮されません。

content = "昨日は田中君と佐々木君と遊びました。"
words = ["田中", "佐々木"]
str = content.gsub(/(#{words.join('|')})/, '◯')

p str # 昨日は◯君と◯君と遊びました。

gsubにはブロックが使えます。
あとは文字数を数えて、文字の数そのまま伏せ字になりました。

content = "昨日は田中君と佐々木君と遊びました。"
words = ["田中", "佐々木"]
str = content.gsub(/(#{words.join('|')})/) do |match|
'◯' * match.length
end

p str # 昨日は◯◯君と◯◯◯君と遊びました。