Swift: 如何拆分一个字符串,然后提取特定的子字符串?

Swift: How to split a string and then extract specific substring?

示例字符串 -

exampleString ( 123 )

我想要上面字符串中的两个部分 -

1-) exampleString 拆分

2-) 123 通过拆分然后删除括号和两个空格,每端一个空格

More specifically, I want to know how can I extract a string between two brackets ( )

如何在 swift 4.2 中实现?

谢谢

下面有一个解决方案,它将括号之间的任何字符串提取到没有括号的数组中,它还为您提供没有元素的字符串作为数组元素的单词:

var myString = "exampleString ( 123 ) "

//creates result array from String by separating elements by space
var result = myString.split(separator: " ")

//filters array to remove '(' and ')'
result = result.filter { [=10=] != "(" && [=10=] != ")" }

print(result)

然后,如果你想从带有字符串元素的结果数组中构建一个字符串,请执行以下操作:

var resultString = result.joined(separator: " ")

print(resultString)

可能不理想,但可能对您有用。

我发现了这个用于分割字符串的漂亮的字符串扩展。在这里回答 -

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 str = "exampleString ( 123 )"
print(str.slice(from: "( ", to: " )"))