条件が満たされている限り、どのキャラクターを別のキャラクターに置き換えるのですか?Ruby One-liner dを "*"で置き換える正規表現ですか?
string = "401200******7777"
string.gsub!(/^\d+/) { |m| "*" * m.length }
puts string
# ************7777
これを行うより簡単な方法がありますか?
条件が満たされている限り、どのキャラクターを別のキャラクターに置き換えるのですか?Ruby One-liner dを "*"で置き換える正規表現ですか?
string = "401200******7777"
string.gsub!(/^\d+/) { |m| "*" * m.length }
puts string
# ************7777
これを行うより簡単な方法がありますか?
うーん...私は今考案唯一の方法は、フラグ変数+ 2つの正規表現使用している:
string = "401200******7777"
flag = true
string.gsub!(/./) { |i| (flag &&= i[/\d/]) ? "*" : i}
をしかし、それは oneliner ではありません...
あなたのソリューションについて気に入っていないものはありますか? – marzagao
@marzagao、私は彼がどんな種類の "gsub"とどんな停止の条件に対しても普遍的な解決を望んでいると思う。 – Nakilon