我的网址看起来像myapp://jhb/test/deeplink/url?id=4567
。
我想删除?
字符后面的所有内容。最后,网址应该看起来像myapp://jhb/test/deeplink/url
。怎么样。我能做到吗?将网址转换为字符串?正则表达式?
答案 0 :(得分:1)
使用URLComponents
分隔不同的网址部分,操纵它们,然后提取新的网址:
var components = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567")!
components.query = nil
print(components.url!)
myapp://jhb/test/deeplink/url
答案 1 :(得分:0)
你可以这样做
let values = utl?.components(separatedBy: "?")[0]
它将使用?
中断字符串并返回数组。
values
的第一个对象为您提供结果字符串。
答案 2 :(得分:0)
您可以使用
将每个网址组件与URl分开print("\(url.host!)") //Domain name
print("\(url.path)") // Path
print("\(url.query)") // query string
答案 3 :(得分:0)
我可以实现吗?将网址转换为字符串?正则表达式?
使用网址时,最好将其视为URLComponent
:
一种结构,用于解析URL并从中构建URL 组成部分。
因此,参考URLComponent你要问的是从url中删除query子组件:
if var componenets = URLComponents(string: "myapp://jhb/test/deeplink/url?id=4567") {
componenets.query = nil
print(componenets) // myapp://jhb/test/deeplink/url
}
请注意,query
是一个可选字符串,这意味着它可能是nil(如代码段中所述,这应该会导致您想要的输出)。