ruby - 表示 "at least one non-digit"的正则表达式

标签 ruby regex

我想根据这个模式验证用户名:

  1. 允许的字符:字母、数字、连字符、下划线
  2. 第一个字符必须是字母或数字
  3. 用户名不能全是数字

这个正则表达式满足上面的1和2,但是我想不通如何满足3:

/^[a-zA-Z\d][\w\-]+$/

(我正在使用 Ruby,如果相关的话)

最佳答案

不是很高效,但是很简单:

/^(?!\d+$)[a-zA-Z\d][\w\-]+$/

前瞻只是意味着:“后面不是一串数字,一直持续到最后”。

关于ruby - 表示 "at least one non-digit"的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125907/

相关文章:

javascript - 如何访问 Rails 中 form_tag 的响应?

ruby - 如何使用 rspec 在 ruby​​ 中模拟 super?

ruby - 按多个键对哈希数组进行分组

java - 如何去除 Java 字符串中的空/单字符括号

c# - 突出显示代码中匹配的括号

ruby-on-rails - 如何扩展核心 Rails FormBuilder 字段

regex - R : grep() lookup world. 城市数据集中的地理编码地址

json - 是否有 Google Sheets 或 MS Excel 公式可将包含 JSON 数组的列转换为多行

regex - Snobol 模式匹配

ruby - @var = var_val 和 self.send ("var=", var_val) 之间有区别吗?