gpt4 book ai didi

iphone - 如何使用自定义 NSDataDetector 来检测某些正则表达式模式?

转载 作者:行者123 更新时间:2023-12-03 20:45:48 24 4
gpt4 key购买 nike

我目前正在使用 NSDataDetectors 来查找链接:

-(void)setBodyText
{
NSString* labelText = [[message valueForKey:@"body"]gtm_stringByUnescapingFromHTML];

NSDataDetector *linkDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSArray *matches = [linkDetector matchesInString:labelText options:0 range:NSMakeRange(0, [labelText length])];
for (NSTextCheckingResult *match in matches) {
if ([match resultType] == NSTextCheckingTypeLink) {
NSURL *url = [match URL];
[bodyLabel addCustomLink:url inRange:[match range]];
NSLog(@"found URL: %@", url);
}
}

[bodyLabel setText:labelText];
[Utils alignLabelWithTop:bodyLabel];
}

如何使用 NSDataDetectors 解析 @ 例如:

"Hello @sheehan, you are cool"

我希望它能够检测到@sheehan

注意:我想使用 NSDataDetector 或正则表达式模式匹配。没有客户标签或控件等。

最佳答案

您可以使用此方法,该方法使用 NSRegularExpression 来查找 @name 匹配项。

- (NSMutableArray *)findTwitterHandle:(NSString *)text {

NSError *error = nil;

NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:@"(@[a-zA-Z0-9_]+)"
options:NSRegularExpressionCaseInsensitive
error:&error];

if (error != nil) {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:@"Ok", nil];

[alert show];

[alert release];

}

NSMutableArray *siteNames = [NSMutableArray array];

NSArray *matches = [regex matchesInString:text options:0 range:NSMakeRange(0, [text length])];

for (NSTextCheckingResult *result in matches) {

[siteNames addObject:[text substringWithRange:result.range]];

}

[regex release];

return siteNames;

}

此方法将返回一个包含所有匹配字符串的 NSMutableArray。

关于iphone - 如何使用自定义 NSDataDetector 来检测某些正则表达式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7082668/

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