gpt4 book ai didi

ios - 用于触摸主题标签的 Objective-C 正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:52 25 4
gpt4 key购买 nike

我有一些代码(如下),当文本发生变化时,它会解析一个 uitextfield 以获取井号标签和 @-symbols。它适用于:

#one #two

..但是当两个 has 标签彼此相邻时失败,如下所示:

#one#two

这是我的代码:

- (IBAction)changed:(UITextField*)sender
{
NSRegularExpression *regexp = [[NSRegularExpression alloc] initWithPattern:@"(?:^|\\s|[\\p{Punct}&&[^/]])((#[\\p{L}0-9-_]+)|(@[\\p{L}0-9-_\\.]+))" options:NSRegularExpressionCaseInsensitive error:nil];
NSArray *matches = [regexp matchesInString: [sender text] options:0 range:NSMakeRange(0, [[sender text] length])];
NSMutableString *output = [[NSMutableString alloc] init];
for (NSTextCheckingResult *linkRange in matches) {
NSString *match = [[sender text] substringWithRange:[linkRange rangeAtIndex:1]];
[output appendString:match];
[output appendString:@"\n"];
}
self.label.text = output;
}

处理空格和无空格的正确正则表达式是什么?

最佳答案

我没有分析你的整个模式,但我测试了你的代码并只检测你应该使用的标签:

NSRegularExpression *regexp = [[NSRegularExpression alloc] initWithPattern:@"#[^# ]+" options:NSRegularExpressionCaseInsensitive error:nil];

输出:

output __NSCFString * @"#dl\n#laklkjdfg\n#glkjs\n" 0x1839cab0

对于:

NSString *text = @"#dl#laklkjdfg #glkjs";

关于ios - 用于触摸主题标签的 Objective-C 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23108751/

25 4 0