Swift - 如何从给定的字符串中获取特定的子字符串

Evg*_*ban 2 swift

我有字符串,由一个预定义的字符串+随机字母组成,如" https://www.facebook.com/ "和"userId".

我有3个预定义的社交主机字符串:

let vkPredefinedHost = "https://vk.com/"
let fbPredefinedHost = "https://www.facebook.com/"
let instPredefinedHost = "https://www.instagram.com/"
Run Code Online (Sandbox Code Playgroud)

我想要的是,提取社交ID,这是一个字符串后面跟着那个字符串(我不确切知道我得到了哪一个).

所以我的问题是:

1)如何检查字符串是否包含我预先定义的字符串之一

2)如何提取字符串后跟此字符串

例如,我得到" https://www.instagram.com/myUserId12345 ",我想得到myUserId12345

vad*_*ian 5

这些字符串是URL表示.创建一个URL并比较host并得到 例如path

let host = "www.instagram.com"

if let url = URL(string: "https://www.instagram.com/myUserId12345"),
    url.host == host {
    let userID = String(url.path.characters.dropFirst())
    print(userID)
}
Run Code Online (Sandbox Code Playgroud)

必须从路径中删除第一个字符(前导斜杠).

你甚至可以写

let userID = url.lastPathComponent
Run Code Online (Sandbox Code Playgroud)

如果有更多的路径组件,并且所请求的信息是最后一个.