如何获得;在“/”之后的所有内容;在iOS的URL中`
假设您从iOS获得如何获得;在“/”之后的所有内容;在iOS的URL中`,ios,swift,Ios,Swift,假设您从iOS获得URL guard let incomingURL = userActivity.webpageURL else { .. } 我只想要“在://之后的所有内容”作为字符串 也就是说,除了方案之外的所有内容 不幸的是,.path将为您提供 /布拉布拉布拉布拉布拉布拉 但我只想 blahblahblahblah/blob/blab+-&abc=+//cbvc/abc=+-%29k/doa 如何在URL中执行此操作 (或者确实在URLComponents?) (注意:我知道如何从
URL
guard let incomingURL = userActivity.webpageURL else { .. }
我只想要“在://之后的所有内容”作为字符串
也就是说,除了方案之外的所有内容
不幸的是,.path
将为您提供
/布拉布拉布拉布拉布拉布拉
但我只想
blahblahblahblah/blob/blab+-&abc=+//cbvc/abc=+-%29k/doa
如何在URL
中执行此操作
(或者确实在URLComponents
?)
(注意:我知道如何从字符串中删除前导字符,这里的问题是关于类
URL
)。获取主机的范围
,并创建一个从主机开始的子字符串
guard let incomingURL = userActivity.webpageURL,
let host = incomingURL.host,
let range = incomingURL.absoluteString.range(of: host) {
let urlMinusScheme = String(incomingURL.absoluteString[range.lowerBound...]) else { ...
print(urlMinusScheme)
或者用正则表达式去除方案
guard let incomingURL = userActivity.webpageURL else { ...
let urlMinusScheme = incomingURL.absoluteString.replacingOccurrences(of: "^https?://", with: "", options: .regularExpression)
print(urlMinusScheme)
获取
主机的范围
并创建一个子字符串,从主机开始
guard let incomingURL = userActivity.webpageURL,
let host = incomingURL.host,
let range = incomingURL.absoluteString.range(of: host) {
let urlMinusScheme = String(incomingURL.absoluteString[range.lowerBound...]) else { ...
print(urlMinusScheme)
或者用正则表达式去除方案
guard let incomingURL = userActivity.webpageURL else { ...
let urlMinusScheme = incomingURL.absoluteString.replacingOccurrences(of: "^https?://", with: "", options: .regularExpression)
print(urlMinusScheme)
如果您只需要一个字符串作为结果,我将从url获取该字符串,在
://
处将其一分为二,然后获取下半部分
大概是这样的:
let incomingURL = URL(string: "https://www.example.com/blahblahblahblah/blob/blab+-&abc=+//cbvc/abc=+-%29k/doa")
if let components = incomingURL?.absoluteString.components(separatedBy: "://") {
let lastPart = components.last!
print(lastPart)
}
这张照片是:
www.example.com/blahblahblahblah/blob/blab+-&abc=+//cbvc/abc=+-%29k/doa
如果您只需要一个字符串作为结果,我将从url获取该字符串,在
://
处将其一分为二,然后获取下半部分
大概是这样的:
let incomingURL = URL(string: "https://www.example.com/blahblahblahblah/blob/blab+-&abc=+//cbvc/abc=+-%29k/doa")
if let components = incomingURL?.absoluteString.components(separatedBy: "://") {
let lastPart = components.last!
print(lastPart)
}
这张照片是:
www.example.com/blahblahblahblah/blob/blab+-&abc=+//cbvc/abc=+-%29k/doa
在哪个斜杠之后?第一个斜杠是
http://
或https://
的第一个斜杠。你真的是这个意思吗?当你删除这个方案时,它仍然是一个url吗?@Fattie:我的意思是,也许你不能,因为那样它就不再是一个url了。提取字符串、修改它并创建一个新的URL(如果可能没有方案)似乎是最简单的方法。hi@koen-似乎有些混乱,我不希望此过程产生URL。我只想把scheme后面的所有字符作为字符串。谢谢在哪个斜杠之后?第一个斜杠是http://
或https://
的第一个斜杠。你真的是这个意思吗?当你删除这个方案时,它仍然是一个url吗?@Fattie:我的意思是,也许你不能,因为那样它就不再是一个url了。提取字符串、修改它并创建一个新的URL(如果可能没有方案)似乎是最简单的方法。hi@koen-似乎有些混乱,我不希望此过程产生URL。我只想把scheme后面的所有字符作为字符串。谢谢非常感谢你。你必须这样建造它,真是不可思议!使用有效的URL失败,如htt p://http或scheme://scheme@gnasher729第二个,确实如此,但是webpageURL
很可能是http(s)
。令人难以置信的是URL
(也不是URLComponents
)真的没有提供一种简单地减去方案的方法,剩下的就剩下了!奇怪!非常感谢你。你必须这样建造它,真是不可思议!使用有效的URL失败,如htt p://http或scheme://scheme@gnasher729第二个,确实如此,但是webpageURL
很可能是http(s)
。令人难以置信的是URL
(也不是URLComponents
)真的没有提供一种简单地减去方案的方法,剩下的就剩下了!奇怪!