• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:44:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

#one #two

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

#one#two

这是我的代码:

- (IBAction)changedUITextField*)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;
}

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



Best Answer-推荐答案


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

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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap