【问题标题】:Java regular expressions specify range of digits [duplicate]Java正则表达式指定数字范围[重复]
【发布时间】:2016-04-07 04:51:51
【问题描述】:

我正在尝试验证用户输入的坐标格式为:x,y 所以我正在使用正则表达式。 xy 可以在 1 到 15 之间,所以我使用了

[1-15]\\d{1,2},[1-15]\\d{1,2}

但这不起作用,因为15 显然不是数字。我把它改成

\\d{1,2},\\d{1,2}

所以至少我可以确认它的两个一位或两位数字,但它可能在任何一侧都达到99;不好。我尝试了其他一些方法,例如

\\d{1}|[1]\\d[0-5]\\d...

但没有任何作用,老实说,我一直在研究这一切,它已经没有任何意义了。

更重要的是,使用java的正则表达式功能甚至是一种好习惯吗?我可以想到其他方法来做到这一点,但这只是针对我正在进行的个人项目,并尝试不同的方法来处理我通常会做的事情。

【问题讨论】:

    标签: java regex numbers


    【解决方案1】:

    我认为您对[...] 的理解是错误的:这意味着您指定了一个字符范围。所以[1-15] 的意思是:1to 1and 5。因此它等价于1|5

    但是,您可以使用[1-9]|1[0-5] 指定数字 1 到 15。将其插入您的正则表达式会导致:

    ([1-9]|1[0-5])\\d{1,2},([1-9]|1[0-5])\\d{1,2}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 2021-12-19
      相关资源
      最近更新 更多