用 "*"替换每个字符\d 的 Ruby 单行正则表达式?

标签 ruby regex

如何在满足条件的情况下将每个字符替换到某个点?

string = "401200******7777"

string.gsub!(/^\d+/) { |m| "*" * m.length }

puts string
# ************7777

有没有更简单/更好的方法来做到这一点?

最佳答案

现在不能尝试,但这应该可以解决问题:

string.gsub!(/(\d)(?=.*\*)/, '*')

关于用 "*"替换每个字符\d 的 Ruby 单行正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600758/

相关文章:

ruby-on-rails - Rails 3 -"Couldn' t find [model] without an ID”问题

MySQL正则表达式匹配问题

regex - 用于跳过捕获组中的字符的正则表达式

mysql - 如果字段长度小于 10 个符号,则 SQL 通过不带 %% 的 like 进行搜索

ruby-on-rails - Rails/ruby 未定义的方法

ruby - 在 Padrino 中插入中间件

ruby-on-rails - sidekiq getaddrinfo错误(没有地址)

Javascript 正则表达式 - 为什么需要终止空格来匹配整个字符串

android - 正则表达式捕获不等于等值字符串

regex - 如何使用# 作为 CoffeeScript heregex 的一部分?