允许空格的17位数的正则表达式

时间:2018-03-12 11:14:51

标签: android regex ocr

允许在任意数量的字符之间有或没有空格的17位数的正则表达式是什么? 我正在Android上使用OCR实时捕获SDK(ABBYY RTR SDK)(我正在使用自定义数据捕获(必须在任何地方捕获带或不带空格的17位数字)

我的正则表达式目前是这样的:

field.setRegEx( "[0-9]{14,16}" );

这只能捕获内嵌数字( 38492039483726473

但我需要它来捕获该格式的数字,以及此格式 - 3849 20394 8372 6473 。 我该如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

尝试使用可选空格重复数字:

function startGame(event)
    --titleScreenGroup:removeSelf()
    display.remove( titleScreenGroup )
    titleScreenGroup = nil

    resetScore() -- in the case that this is a rematch
    placePlayerOnePaddle()
    placePlayerTwoPaddle()
    placePuck(puckAvalLocation.center)  
    Runtime:addEventListener( "postCollision", onPostCollision )
    Runtime:addEventListener( "collision", onCollision )

    appodeal.show("interstitial")    --<-------- move this to scene:show()'s "did" 
    phase

end

Demo

答案 1 :(得分:2)

@mrzasa给出的答案的替代方法是首先从数字字符串中删除所有空格,然后使用更简单的正则表达式检查17位数字:

String input = "3849 20394 8372 6473";
if (input.replaceAll("\\s+", "").matches("\\d{17}")) {
    System.out.println("match");
}

答案 2 :(得分:2)

如果只是这两种格式:

(\d{17}|\d{4}\s\d{5}\s(?:\d{4}\s){2})

捕获数字17次

捕获4位数字后跟一个空格,然后是5位数字后跟另一个空格,然后是4位数后跟一个空格两次