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: " )"))
示例字符串 -
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: " )"))