【问题标题】:Regex for string first chars字符串第一个字符的正则表达式
【发布时间】:2011-02-11 19:29:08
【问题描述】:

在我的 Rails 应用程序中,我需要验证一个字符串,该字符串在创建时不能使其第一个字符为空或由任何特殊字符组成。

例如:“file”和“%file”无效。你知道我应该使用什么正则表达式吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails regex validation


    【解决方案1】:

    仅当字符串的第一个字母是字母、数字或“_”时,以下正则表达式才会匹配:

    ^\w
    

    仅限字母或数字:

    ^[0-9a-zA-Z]
    

    ^ 在正则表达式中具有特殊含义,当它位于字符类 ([...]) 之外时,它匹配字符串的开头(实际上不匹配任何字符)。

    如果你想匹配所有无效字符串,你可以在字符类中放置一个^ 来否定它,所以前面的表达式是:

    ^[^\w]
    

    ^[^0-9a-zA-Z]
    

    【讨论】:

    • 另外,[^\w] 等价于 \W
    • 这正是我所需要的!非常感谢!
    【解决方案2】:

    以交互方式试用 Ruby 正则表达式的好地方是Rubular。我给出的链接显示了@Dave G 给出的答案以及一些测试示例(乍一看它似乎有效)。您可以扩展示例以进一步说服自己。

    【讨论】:

      【解决方案3】:

      正则表达式

      ^[^[:punct:][:space:]]+
      

      应该做你想做的事。我不能 100% 确定 Ruby 提供的正则表达式和 POSIX 类支持,因此您对此的了解可能会有所不同。

      【讨论】:

        猜你喜欢
        • 2015-10-04
        • 2012-03-16
        • 2013-03-31
        • 1970-01-01
        • 1970-01-01
        • 2012-09-17
        • 2011-03-29
        • 2019-03-03
        • 1970-01-01
        相关资源
        最近更新 更多