gpt4 book ai didi

ios - 当此字符串包含中文时,NSDataDetector 无法分析 NSString 中的 url

转载 作者:行者123 更新时间:2023-12-01 20:00:47 28 4
gpt4 key购买 nike

没有匹配================================================ ======

我知道,这是“空格”的问题,如果我在“https”前面添加空格,那么它就可以了。所以NSDataDetector不能解决这个问题吗?

NSString *originString = @"【mans】下单立减5.00元https://kdt.im/uYMI4r";
NSDataDetector *linkDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSArray *matches1 = [linkDetector matchesInString:originString options:0 range:NSMakeRange(0, [originString length])];

for (NSTextCheckingResult *match in matches1) {
if ([match resultType] == NSTextCheckingTypeLink) {
NSURL *url = [match URL];
}
}

最佳答案

这是 NSDataDetector 的一个已知问题如果协议(protocol)之前有一个空格,即 http://或 https://那么它可以工作,否则它不会。

例如

    let input = "This is a test with the URL https://www.sharpkits.com to be detected."
let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
let matches = detector.matches(in: input, options: [], range: NSRange(location: 0, length: input.utf16.count))

for match in matches {
let url = (input as NSString).substring(with: match.range)
print(url)
}

输出:
https://www.sharpkits.com

并且对于 let input = "这是一个带有 URLhttps://www.sharpkits.com 的测试,将被检测到。"

输出:URL https://www.sharpkits.com

因此, NSDataDetector 无法完成。

关于ios - 当此字符串包含中文时,NSDataDetector 无法分析 NSString 中的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39970947/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com