RegEx在数字/空格字符串中捕获第一个(或唯一)7个数字组的最大值

时间:2016-04-19 07:18:27

标签: java regex pattern-matching

确切的规则是(从法语翻译,希望它是正确的):

第6条规则:如果字符串是数字(最后是空格)并且第一个或唯一的一系列数字小于或等于7个字符,则此系列是我们的“标题n°”

  • “1122584 44588985 1211”必须返回“1122584”
  • “xx 122585 12585”不得匹配
  • “122585 1258xx5”不得匹配
  • “12224457887 5896”必须返回“5896”
  • “1458 125828”必须返回“1458”

根据我的说法,“第一个或唯一的”是没用的,如果我找到一个我没问题,不管它是否是唯一一个因为它是第一个。 我无法做的是检查整个字符串是否为数字/空格并找到我的组匹配。

我将在Java 7中使用正则表达式,使用此库:https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

编辑:

^ [0-9 \ s] * $是检查数字/空格字符串

的正则表达式

([0-9] {1,7})是我的捕获组

我无法想出如何将这两个表达式结合起来。

1 个答案:

答案 0 :(得分:1)

([0-9] {1,7})是您的捕获组,并且您希望确保所有其他字符都是数字/空格。

因此它变为^[0-9\s]*?\b([0-9]{1,7})\b[0-9\s]*$