按大写 words/chars 和数字拆分字符串

Split string by uppercase words/chars and numerics

我有这样的字符串 - "H2SO4liH2",我需要用大写元素和数字拆分这个字符串。在外面我需要得到这样的数组 "H2"、"S"、"O4"、"Li"、"H2" 或 "H"、“2”、"S"、"O"、“4”、"Li"、"H"、“2”[​​=11=]

这使用了 toheedNiaz 的回答中提供的模式,但在 Swift 上下文中:

let string = "H2SO4LiH2"

let pattern = "[A-Z][^A-Z]*"
do {
    let regex = try NSRegularExpression(pattern: pattern)
    let matches = regex.matches(in: string, range: NSRange(string.startIndex..., in: string))
    for match in matches {
        let range = Range(match.range, in: string)!
        print(string[range])
    }
} catch {
    print("Regex Error:", error)
}