如何在java中实现这个正则表达式函数?

时间:2016-08-22 13:55:28

标签: java regex string

字符串最多15个字符,仅由数字组成,字符串中的任何位置都应至少有两个单字符大小的空格。

很容易找到仅用于数字的解决方案,我很难找到添加空格的条件。

我尝试搜索最常见的正则表达式问题,但无法找到类似的内容。

编辑:

附加条件

  • 空格不能彼此相邻
  • 不得将它们放在第一个或最后一个字符中

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:[0-9\s]{2,15}

在Java代码中,检查是否有三个部分用空格分隔:

String input =...;
if (input.matches("[0-9\\s]{2,15}") && (input.split(" ").length == 3) ) {
     System.out.println("valid input");     
}

编辑:前导和结束空格,不允许连接的空格

答案 1 :(得分:1)

我想你的要求,这样的事情会起作用:

\d+(\s\d+){2,}

但是您需要单独检查长度(例如input.length() <= 15)。

这句话说:

  • 开头的数字。
  • 然后是一个空格,后跟数字 - 至少两个这样的组合

这可确保字符串中的所有空格不在空格之前或之后,并且至少有两个空格。它还可以防止空间处于开头或结尾,并且还允许空格中的两个以上。