我有一个应用程序可以检测用户从应用程序或使用OCR从现有图像获取的任何图像中的文本。这是有效的,但如果图像有许多不符合数字的数字设置我想要的,那么一切都将被检测到。所以我想从检测到的文本字符串中提取始终具有模式的数字
举个例子, 我的字符串可以是这样的,
" 3456 7834 5623 iuhef654sca 869878zsc ttv"
我想只获得" 3456 7834 5623"部分来自上面的字符串。其中有两个空格,三组四位数。我是怎么做到的?完成它的最佳方法是什么?
答案 0 :(得分:0)
你可以使用正则表达式"(\\ d){4}(\\ d){4}(\\ d){4}"如下:
let string = "3456 7834 5623 iuhef654sca 869878zsc ttv"
let pattern = "(\\d){4} (\\d){4} (\\d){4}"
if let range = string.range(of: pattern, options: .regularExpression) {
print(string[range]) // "3456 7834 5623\n"
}