2017-09-25 3 views
1

Ich habe eine App, die den Text in jedem Bild erkennt, den Benutzer aus der App oder aus einem vorhandenen Bild mit OCR nimmt. Dies funktioniert, aber wenn das Bild viele unnötige Nummern mit der von mir gewünschten Nummer enthält, wird alles erkannt. Also ich die Zahlen zu extrahieren, die immer ein Muster aus der erfassten Textzeichenfolge hat,Extrahieren Sie ein bestimmtes Zeichenfolgenmuster aus einem String (swift 2)

Als Beispiel mein String kann so etwas wie diese,

„3456 7834 5623 iuhef654sca 869878zsc ttv“

Ich möchte nur den "3456 7834 5623" Teil von der obigen Saite bekommen. Welches hat zwei Räume, drei Sätze von 4 Ziffern. Wie habe ich es gemacht? Was ist der beste Weg, um es zu erreichen?

+0

NSRegularExpression verwendet werden könnte, etwas wie '^ (\\ d \\ d \\ d \\ d) {3}'? – Larme

+1

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

Antwort

0

können Sie RegexMuster verwenden "(\\ d) {4} (\\ d) {4} (\\ d) {4}" wie folgt:

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

Vielen Dank für die Hilfe! Ich benutze swift 2. Kannst du mir mit der schnellen 2 Version davon helfen? – Bishan

+1

ein anderes Regex-Muster, das Sie verwenden könnten, ist "((\\ d) {4}) {2} (\\ d) {4}" –

+0

versuchen rangeOfString stattdessen und Optionen auf NSStringCompareOptions.RegularExpressionSearch –

Verwandte Themen