Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在两个字符串之间快速获取字符串_Swift_String_Substring - Fatal编程技术网

Swift 在两个字符串之间快速获取字符串

Swift 在两个字符串之间快速获取字符串,swift,string,substring,Swift,String,Substring,我有以下字符串: "Notes[9219:1224244] [BoringSSL] Function boringssl_context_get_peer_sct_list: line 1757 received sct extension length is less than sct data length [[["encendedor","lighter",null,null,1]],null,"en"]" 我只想提取引号第一次出现之间的字符串,在本例中是“encendedor”。 我尝

我有以下字符串:

"Notes[9219:1224244] [BoringSSL] Function boringssl_context_get_peer_sct_list: line 1757 received sct extension length is less than sct data length [[["encendedor","lighter",null,null,1]],null,"en"]"
我只想提取引号第一次出现之间的字符串,在本例中是“encendedor”。 我尝试了下面的代码,我从

我当前遇到以下错误:

Thread 6: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=2048 "The value “[[[(.*?),” is invalid." UserInfo={NSInvalidValue=[[[(.*?),}
如何正确提取此字符串?谢谢你的帮助

使用
组件(分隔符:)


您还可以使用range在两个字符串之间进行切片

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 slicedString = yourString.slice(from: "\"", to: "\"") // Optional("encendedor")
扩展字符串{
func切片(from:String,to:String)->String{
return(范围:from)?.upperBound.flatMap{substringFrom in

(range(of:to,range:substringFrom..各种解决方案(带和不带regex)at.正则表达式需要对所有
[
进行转义。
*?
也没有意义
var str = "Notes[9219:1224244] [BoringSSL] Function boringssl_context_get_peer_sct_list: line 1757 received sct extension length is less than sct data length [[[\"encendedor\",\"lighter\",null,null,1]],null,\"en\"]"

str.components(separatedBy: "\"")[1] // "encendedor"
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 slicedString = yourString.slice(from: "\"", to: "\"") // Optional("encendedor")