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

时间:2019-01-26 08:56:13

标签: ios swift string nsstring

示例字符串-

  

exampleString(123)

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

1-)exampleString通过拆分

2-)123,先将括号和两个空格分开,然后将其删除,每个空格一个

  

更具体地说,我想知道如何提取之间的字符串   两个括号()

如何在Swift 4.2中实现?

谢谢

2 个答案:

答案 0 :(得分:1)

下面有一个解决方案,它将括号内的所有字符串提取到不带括号的数组中,它还为您提供了不包含元素的字符串作为单词作为数组元素:

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 { $0 != "(" && $0 != ")" }

print(result)

然后,如果要从具有字符串元素的结果数组中重新构建字符串,请执行以下操作:

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

print(resultString)

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

答案 1 :(得分:1)

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

Slice String Extension

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: " )"))