Как получить значение в строке после специального символа [closed]

Мне нужно скопировать некоторые данные в строке перед символом.

Мне нужно сорвать номер перед строкой.

var str= "123456Z789456123"        // output: Z789456123
var str= "123456K789456123"        // output: K789456123
var str= "1234U789456123"          // output: U789456123
var str= "123456909D789456123"     // output: D789456123

Я не могу найти решение для этого.

-8
задан rmaddy 5 August 2019 в 16:10
поделиться

3 ответа

Две опции (существуют больше):

  1. Scanner

    let str = "123456Z789456123"
    let scanner = Scanner(string: str)
    var output : NSString?
    scanner.scanUpToCharacters(from: .letters, into: nil)
    scanner.scanCharacters(from: .alphanumerics, into: &output)
    print(output! as String)
    
  2. Регулярное выражение для поиска первого символа нецифры

    let str = "123456Z789456123"
    let range = str.range(of: "\\D", options: .regularExpression)!
    let output = str[range.lowerBound...]
    
1
ответ дан 6 September 2019 в 19:18
поделиться
var str = "123456Z789456123"
let characterSet = CharacterSet(charactersIn: "ZKUD")
let firstIndex = str.firstIndex { characterSet.contains([110].unicodeScalars.first!) }
let substr = str[firstIndex!...]

Или расширение использования:

var str = "123456Z789456123"        // output: Z789456123

extension String {

    func strip(before characterSet: CharacterSet) -> String {
        if let firstIndex = self.firstIndex(where: { characterSet.contains([111].unicodeScalars.first!) }) {
            return String(self[firstIndex...])
        }
        return self
    }

    func stripBeforeLetters() -> String {
        return strip(before: .letters)
    }

}

let substr = str.strip(before: CharacterSet(charactersIn: "ZKUD"))
let anotherSubstr = str.stripBeforeLetters()
-1
ответ дан 6 September 2019 в 19:18
поделиться

Вот краткая острота:

let subStr = String(str.drop { [110].isNumber })

Это было бы отбрасывание символы с начала строки, пока они - цифры путем проверки или .isNumber или .isWholeNumber свойства Character.

-1
ответ дан 6 September 2019 в 19:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: