【问题标题】:Regex - two specific digits followed by optional digits正则表达式 - 两个特定数字后跟可选数字
【发布时间】:2017-01-06 13:26:07
【问题描述】:

我正在尝试为以下模式创建一个正则表达式:

  • 以两个特定数字开头(例如((50)|(51)|(52))
  • 后面可以跟任意数量的数字

例子:

  • 50 匹配
  • 523412 匹配
  • 53 不匹配
  • 54234 不匹配

我设法创建了这个

^((50)|(51)|(52))+[0-9]+?$

但它不匹配 5051 这样的案例。仅当它后跟至少一位数字时才有效。

【问题讨论】:

  • 5[012][0-9]* 应该在 50,51 或 52 之后匹配 0 到 +Inf 可能的数字。简而言之,对正则表达式量词字符 +*、@987654332 进行一些搜索和学习@.
  • 您的正则表达式不起作用,因为 +? 量词至少需要 1 个字符。使用*

标签: regex


【解决方案1】:

以下应该有效;

^(50|51|52)[0-9]*$

这匹配字符串开头的 50、51 或 52,然后匹配任何数量的数字。你已经很接近让它工作了。

Here's a working example


Tensibai的好建议

^5[012][0-9]*$

这匹配字符串开头的数字 5,后跟 0、1 或 2,然后再匹配任意数量的数字。

Here's a working example for this solution

【讨论】:

  • 它有效,谢谢!不幸的是,我无法遵循这个建议,因为有更多可用的两位数字组合不以 5 开头。不过,我会记住这一点。
猜你喜欢
  • 2023-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
相关资源
最近更新 更多