正则表达式匹配数字与空格但不是没有空格

时间:2018-01-24 20:51:39

标签: java android regex

尝试将一串数字与中间的空格匹配,同时忽略其他数字之间没有空格的数字。我想匹配16个字符。

例如。想要匹配12345 67890 1234但不是1234567890123456

我试过这个:

[0-9 ]{16}

但这匹配两组字符串。

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式在数字之间强制执行至少一个空格:

\d+(?:\h+\d+)+

RegEx Demo

  • \d+:匹配1+位数
  • (?:\h+\d+)+:匹配1 + 1个空白和1+个数字组

答案 1 :(得分:0)

我使用并更正了@WiktorStribiżew正则表达式,因为原始正则表达式会匹配数字开头和结尾的空格。

正则表达式\b(?![0-9]{16})\d[0-9 ]{14}\d\b

<强>详情:

  • \b在字边界(^\w|\w$|\W\w|\w\W)
  • 处断言位置
  • (?!)否定前瞻
  • []匹配列表0-9
  • 中的单个字符
  • {n}完全匹配n
  • \d匹配一个数字(等于[0-9]

RegEx demo