【问题标题】:Regular expression with comma and numbers带逗号和数字的正则表达式
【发布时间】:2013-10-09 08:40:00
【问题描述】:

我想要一个字符串的正则表达式,它可以有 4 到 6 位数字和一个逗号来分隔它们,这已经由这个正则表达式完成:

@"^(\d{1,6},{1})+$"

我不想要的是最后的逗号

这个现有的正则表达式适用于字符串类型:0234,23544,234332,

我想要以下字符串的正则表达式:0234,23544,234332。

【问题讨论】:

  • 你的结尾好像有个句号?
  • 您肯定想要{4,6} 而不是{1,6}
  • 你能显示有效和无效的字符串吗?

标签: c# javascript jquery regex


【解决方案1】:

我仍然不清楚结尾的 (.) 与否

/^\d{1,6},+\d+$/ 将匹配任何不以, or . 结尾的字符串

Demo and Regex Explained

【讨论】:

  • 天哪,你的模式也匹配0234{,,,{},23544。请了解[]运营商。
  • 现在好多了,虽然不完美:)
  • @RomanZavalov 会这样做的,感谢这个 [] 永远学会了。
【解决方案2】:

这个^\d{1,6}(,\d{1,6})*$ 应该可以完成这项工作。如果您想要一个组中的 4-6 位数字,请将 {1,6} 替换为 {4,6}

【讨论】:

  • 这是正确的正则表达式,假设字符串末尾的句点不应该存在。
  • 您可以在正则表达式的末尾添加一个可选点 \.?$
【解决方案3】:

我会建议

(\d{4,6}[,|\.])

如果您匹配“全局”,例如所有出现的情况你都会得到这个:

0234,
23544,
234332.
0234,
23544,
234332,

看看here

对于 perl 来说是

m/(\d{4,6}[,|\.])/g

【讨论】:

    【解决方案4】:

    试试这个正则表达式

    ^\d{1,6}(,\d{1,6})*(\.)?$
    

    【讨论】:

    • 它将匹配字符串末尾的逗号。
    • 但他说:“我不要的是逗号结尾”
    【解决方案5】:

    最简单的可能是:

    /^(\d{4,6},?\b)+$/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 2011-07-16
      • 2015-10-05
      相关资源
      最近更新 更多