爪哇 - 正则表达式 - 允许 0-9,句点,连字符



我无法构建正确的正则表达式。

有效:

  • 1.1.1
  • 1.1-1
  • 1-1.1
  • 1-1-1
  • 1-1
  • 1.1

无效:

1
  • ..1
  • 1.
  • 1-
  • -1
  • 1-

到目前为止,我得到了

^[0-9]+[0-9.-][0-9]+$

感谢您的帮助

^[0-9]+[0-9.-][0-9]+$模式匹配与模式完全匹配的字符串:1 个或多个数字 ([0-9]+(, 一个数字或.-([0-9.-](,然后是 1 个或多个数字 ([0-9]+(。它可以匹配一串数字内的连续-或/和.

您可以使用

^[0-9]+(?:[.-][0-9]+)*$

查看正则表达式演示

如果在.matches()方法中使用它,则可以省略^$定位点。

详情

  • ^- 字符串的开头
  • [0-9]+- 1 个或多个(+量词匹配1 个或多个匹配项,如果只需要匹配单个匹配项,则删除+量词(
  • (?:[.-][0-9]+)*- 零个或多个连续序列
    • [.-]-.-
    • [0-9]+- 1 位或多位数字(适用与上述相同的量词注释(
  • $- 字符串的结尾。

这里应该这样做:

^[0-9]([.-][0-9])*$

一位数字,后跟零位或多次出现(点/减号数字(

其他答案略有不同。 您没有指出没有句点和连字符的孤位数的情况:

  1. (无效( 1-(无效( 1(我假设这种情况无效(

此外,此正则表达式只允许个位数(例如 2.2.2,而不是 22.22.22(

^d([.-]d)+$

两者

^[0-9]([.-][0-9])*$

^[0-9]+(?:[.-][0-9]+)*$

工程。谢谢

相关内容

最新更新