2017-09-25 109 views
1

我有一个应用程序,可以检测用户从应用程序或使用OCR的现有图像获取的任何图像中的文本。这是工作,但如果图像有很多unnesseasry数字与我想要的数字集,一切都会被检测到。所以,我想提取其中总有从检测到的文本字符串模式的数字,从字符串中提取特定的字符串模式(swift 2)

举个例子, 我的字符串可以是这样的,

“3456 7834 5623 iuhef654sca 869878zsc台视”

我想从上面的字符串中只获得“3456 7834 5623”部分。其中有两个空格,三个4位数字。我是怎么做到的?完成它的最佳方式是什么?

+0

NSRegularExpression可以使用的东西像'^(\\ d \\ d \\ d \\ d){3}'? – Larme

+1

https://stackoverflow.com/q/39110726/3746301 – Shades

回答

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" 
} 
+0

非常感谢您的帮助!即时通讯使用迅速2.你能帮我快速2版本? – Bishan

+1

您可以使用的另一个正则表达式模式是“((\\ d){4}){2}(\\ d){4}” –

+0

尝试使用rangeOfString,并将选项设置为NSStringCompareOptions.RegularExpressionSearch –