【问题标题】:A regular expression that matches 25 chars and starts with digits匹配 25 个字符并以数字开头的正则表达式
【发布时间】:2011-11-18 19:57:26
【问题描述】:

我有一个需要使用正则表达式验证的文本字段。我的要求如下:

CCCCNNNNNNCCCCNNNNNNN(模板)

1234ABCDEFG123-ABCDEFG(示例字符串)

规则:

  • 整个字符串最多 25 个字符
  • 前四个字符 (CCCC) 必须是字母数字
  • CCCC 是 4 个字符,可以是数字也可以是数字
  • CCCC 可以将破折​​号作为第 4 个字符
  • NNNNNNNNNNNN 最多可包含 21 个字符且只能包含数字

例如AAAA 1234 A58- 是 CCCC 的有效字符串。

这是我的研究笔记:

  • 我需要先匹配数字
  • 我需要 + 字符来指定匹配此模式 X 次
  • 之后我需要匹配 8-9 个空格的字母

这里有一篇关于 RegEx 模式的精彩文章:

Matching numbers with regular expressions — only digits and commas

我的目标是将此 REGEX 模式应用于 WinForms 应用程序中的文本框掩码。

【问题讨论】:

  • 我已经删除了我的答案 - 请回去写一个明智的问题。
  • 很抱歉,我已经阐明了我的要求。希望这能让我更清楚地了解我需要什么。
  • 不够:对我来说,“前四个字符 (CCCC) 必须是字母数字”意味着 ABCD1234 并且要求“NNNNNNNNNNNN 最多可以包含 21 个字符,并且只能是数字”与您的示例 1234ABCDEFG 冲突。那么,I will need to match letters after that for 8-9 spaces 到底是什么意思?
  • 尝试以我的回答中的 cmets 的形式说明允许的内容 - 如有必要,不允许执行的内容

标签: regex regular-language maskedtextbox


【解决方案1】:

....

....

...是的 - 我认为您正在寻找的答案(我强调“认为”)是这样的表达:

^[0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}$

那就是:

^               # assert beginning (not in the middle)
[0-9A-Za-z]{3}  # three characters that are: 0-9 or a-z (upper or lower)
[0-9A-Za-z-]    # one character that is: 0-9 or a-z (upper or lower) or a dash
\d{0,21}        # anywhere from 0 to 21 digits
$               # assert at the end (not somewhere in the middle

如果你想匹配这个表达式的几种情况,把上面的表达式(减去断言)加上括号(())以及任何允许分隔这些值的东西——我选择了\s或“空白”)然后使用+ 量词:

^([0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}\s+)+$

将匹配/验证以下输入:

1234567890 AAAA123456789012345678901 GGG-123       hhh5   A1B2000000000

如果你想要别的东西,你必须问一个更清楚的问题(你的问题中有很多矛盾和重复,这使它非常混乱)

【讨论】:

  • 上次我检查过,标准的 MaskedTextBox 不使用正则表达式
  • 感谢您尽管与 Code Jockey 存在矛盾,但仍积极回答这个问题;我已经清理了我的问题,以便为我的表达式验证规则提供直接的要求。
  • 我使用的控件是第 3 方控件,它允许使用 MaskTypes 和 RegEx 掩码
  • @Shawn 表达方式相差多远(至少基于我对要求的重新表述)- 有什么问题或需要稍微更改/调整或添加或删除?
  • 谢谢@CodeJockey 这似乎是我开始所需要的。我将自己研究和实施对正则表达式的任何调整。再次感谢;非常感谢您的帮助。
猜你喜欢
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 2011-01-08
相关资源
最近更新 更多