Search code examples
swiftswift3

How to extract data within parenthesis in swift?


I'm trying to extract some numbers within a parenthesis in swift.

Eg.

var accname = "(1234) some random texts"

How to get 1234 from var s ? The numbers in the bracket does not have a fixed length. It can be (12) or (12345).

This is what I have tried

var accname = ""
for i in accname.characters.indices[(accname.startIndex)..<accname.endIndex]{

       while accname[i] != ")"{
                accnumb.append(accname[i])
        }
        }

Solution

  • Well you can use below extension suggested by @oisdk for that:

    var demoText = "(1234)  e e e er er e"
    
    extension String {
    func slice(from: String, to: String) -> String? {
        
        return (range(of: from)?.upperBound).flatMap { substringFrom in
            (range(of: to, range: substringFrom..<endIndex)?.lowerBound).map { substringTo in
                String(self[substringFrom..<substringTo])
            }
        }
    }
    }
    
    
    let sliced  = demoText.slice(from: "(", to: ")")