我試圖從“。”(點和空格)之后的字串中獲取最后一句,假設我有一個很長的字串,并且在那個字串中,有多個“。”(點和空格)但我想獲取字串在最后一個“。”(點和空格)之后我嘗試了一些解決方案,但我遇到了錯誤
示例字串:“你好。游樂場!。你好。世界!你們好嗎?”
所需的預期輸出:“世界!!!你們好嗎?”
以下是我到目前為止嘗試過的代碼
let fullstring = "Hello. playground!. Hello. World!!! How Are you All?"
let outputString = fullstring.substringAfterLastOccurenceOf(". ") // Here I am getting this error Cannot convert value of type 'String' to expected argument type 'Character'
extension String {
var nsRange: NSRange {
return Foundation.NSRange(startIndex ..< endIndex, in: self)
}
subscript(nsRange: NSRange) -> Substring? {
return Range(nsRange, in: self)
.flatMap { self[$0] }
}
func substringAfterLastOccurenceOf(_ char: Character) -> String {
let regex = try! NSRegularExpression(pattern: "\(char)\\s*(\\S[^\(char)]*)$")
if let match = regex.firstMatch(in: self, range: self.nsRange), let result = self[match.range(at: 1)] {
return String(result)
}
return ""
}
}
任何人都可以幫我解決這個問題,還是有其他方法可以實作這一目標?
提前致謝!!
uj5u.com熱心網友回復:
components(separatedBy:)改為使用
let fullstring = "Hello. playground!. Hello. World!!! How Are you All?"
let sliptArr = fullstring.components(separatedBy: ". ")
print(sliptArr[sliptArr.count - 1]) // World!!! How Are you All?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/510279.html
標籤:IOS迅速正则表达式细绳
