2017-09-25 102 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 –