【问题标题】:regex matching alpha character followed by 4 alphanumerics正则表达式匹配字母字符后跟 4 个字母数字
【发布时间】:2008-12-02 14:37:05
【问题描述】:

我需要以下模式的正则表达式:

  • 总共 5 个字符(字母和数字,仅此而已)。

  • 第一个字符必须是字母(仅限ABC

  • 其余4个字符可以是数字或字母。

澄清:首字母只能是ABC

例子:

  • A1234 有效
  • D1234 无效

【问题讨论】:

  • 为什么会被否决?
  • 不是我,但我想这是一个糟糕的标题。
  • @Timothy - 不是我同意它,但似乎有人投票反对“简单”问题。我个人不会,因为每个人在某个时候都是新手。
  • @Whytespot - 好主意 - 我改了标题。
  • 这就是我喜欢 StackOverflow 的原因……大多数人最终都会解决问题。

标签: regex


【解决方案1】:

编辑:Grrr...由于新的“澄清”而编辑了正则表达式:)

^[A-C][a-zA-Z0-9]{4}$

编辑:用英语解释上述正则表达式...

^$ 表示“从头到尾”(这确保了整个字符串必须完美匹配)

[A-C] 表示“匹配ABC

[a-zA-Z0-9]{4} 表示“匹配 4 个小写字母、大写字母或数字”

【讨论】:

  • 注意。如果它位于单独的行上,这只会匹配此模式。
  • @mats - 或在单独的变量中。
  • 单行注释是什么意思?这个正则表达式是完美的:)
  • 注意。如果它在单行上,我认为这就是他的意思,这只会匹配这个模式
  • 由于您使用的是 ^ 和 $,如果字符串位于其他文本的中间,则不会发生匹配。所以这不匹配“这是文本 A1234 这是更多文本”。目前尚不清楚 OP 是否可以。
【解决方案2】:

类似的东西:

[A-C][A-Za-z0-9]{4}

如果您不熟悉正则表达式,我建议您看看http://regexlib.com/CheatSheet.aspx,并尝试自己做这些简单的正则表达式。

还有很多在线正则表达式测试应用程序,例如:http://regexlib.com/RETester.aspx,让您无需编写任何代码即可测试您的正则表达式。

【讨论】:

    【解决方案3】:

    您的意思是第一个字母必须是 A、B 或 C?或者可以是任何字母吗?

    如果它必须是 A、B 或 C(区分大小写),那么这就是正则表达式。

    [A-C][a-zA-Z0-9]{4}
    

    否则,这里的其他答案就足够了。

    【讨论】:

      【解决方案4】:

      这个答案是正确的,但我确实想补充一点,您可以使用以下内容将其缩短一点。

      ^[A-C]\w{4}$
      

      \w 表示任何字母数字字符。

      【讨论】:

      • 没有。这将匹配C____
      【解决方案5】:

      如果这不是我们正在讨论的 Perl 正则表达式,则需要进行一些剪切和粘贴:

      [ABC][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]
      

      我将“[a-zA-Z0-9]”剪切并粘贴了四次。

      【讨论】:

      • 下面的正则表达式也适用于 JavaScript 和 .NET...您是说 Perl 不支持 {4},还是说其他语言不支持?
      • @Timothy - perl 支持 {count}。有一次,常规的 grep 没有,但 egrep 有。因此,不同的语言有不同版本的“正则表达式”,具体取决于它们是从 grep、egrep 还是 perl(或其他)复制而来。
      • 谢谢 - 我不深入了解 Perl 的正则表达式,所以我只是想知道这个答案。
      • 如果您想了解不同正则表达式引擎的一些比较,我建议您阅读 Jeffrey E.F. Friedl 的 Mastering Regular Expressions。
      • 如果你真的想看,我相信它可以在线获得
      【解决方案6】:
      /[ABC](?i:[a-z0-9]{4})/
      

      【讨论】:

      • 这个纯代码答案的解释在哪里?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 2011-01-09
      • 2013-06-03
      • 1970-01-01
      • 2016-09-01
      相关资源
      最近更新 更多