通过 NSPredicate 在 NSString 中进行“整个单词”搜索

2024-01-13

我想在属性中搜索description (an NSString实例)有一个给定的单词。

我尝试使用这个谓词:

[NSPredicate predicateWithFormat:@"description CONTAINS[cd] %@", theWord];

它有效,但它也发现子词.

例如,给定theWord:

Car

它也会这个description:

圣诞节颂歌

相反,我希望我的谓词仅匹配a, or christmas, or carol.

(我正在使用 Core Data 和 NSFetchRequest。)


像这样的东西吗?

NSString *matchStr = @".*\\bCarol\\b.*";

NSPredicate *pred =[NSPredicate predicateWithFormat: @"description MATCHES %@", matchStr];

NSArray *arr = @[ 
    @"A Christmas Carol",
    @"Sing",
    @"Song"
];

NSArray *filtered = [arr filteredArrayUsingPredicate: pred];

诀窍是\b元字符,表示字符串中的单词边界。为了将反斜杠“放入”正则表达式模式字符串中,您必须在其前面添加另一个反斜杠,以便编译器了解字符串中应该有一个真正的反斜杠。因此字符串中出现“\\b”。

另外,为了更好地覆盖非英语语言字符串,您应该启用 Unicode 单词边界检测,方法是设置w标志选项。匹配字符串将如下所示:

NSString *matchStr = @"(?w).*\\bCarol\\b.*"; 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 NSPredicate 在 NSString 中进行“整个单词”搜索 的相关文章

  • 如何在 viewDidLayoutSubviews 中获得正确的视图高度?

    void viewDidLayoutSubviews super viewDidLayoutSubviews NSLog viewDidLayoutSubviews view height f self view frame size he
  • 从 NSString 中删除字符?

    NSString myString A B C D E F G 我想删除空格 因此新字符串将是 ABCDEFG 你可以使用 NSString stringWithoutSpaces myString stringByReplacingOcc
  • 从字符串初始化单元

    我正在寻找一个Unit symbol String 一种初始化程序认出 不定义符号 这是一个代码片段 通过提供来说明我的问题有限解 to it 尽管下面的解决方案有效 但明确列出了基础框架如果 Apple 在即将推出的 iOS 更新中发布新
  • 核心数据插入具有现有关系的新数据

    我的核心数据有问题 我有一个看起来像这样的表 用户 与 机架 与 机架项目的关系 我应该如何将新对象插入到具有用户中现有项目对象和现有机架对象的机架项目中 我尝试获取现有对象 predicate NSPredicate predicateW
  • 在核心数据中伪造动态模式?

    通过阅读有关 Core Data 的 Apple 文档 我了解到当您需要动态模式时不应该使用 Core Data 如果我想为用户提供创建自己的属性的能力 那么在核心数据模型中 如果我创建一些 虚拟 属性 例如 自定义十进制 1 自定义十进制
  • iOS 键盘颜色变化 - 键盘外观深色不粘

    在我们的应用程序中 我们将键盘外观设置为深色 正如预期的那样 这会产生一个黑色键盘 但是 如果显示键盘 并且我们按主页按钮 然后返回应用程序 键盘会变成白色 如图所示 有什么想法吗 这可能与键盘是全局对象这一事实有关 在任何给定时间 内存中
  • Swift NSAttributedString 修剪

    我想摆脱 NSAttributedString 前面和末尾的空白 修剪它 我不能简单地将其转换为字符串并进行修剪 因为其中有图像 附件 我该怎么做 创建扩展NSAttributedString如下 extension NSAttribute
  • Xcode 5 部署目标仅限于 iOS 7

    What should be done for me to have the deployment target lower that 7 0 in my project preferences Now any new project I
  • 如何判断用户是否已经滚动到UITableView的底部?

    如何确定用户是否已滚动到 UITableView 的最后一个单元格 底部 UITableView继承自UIScrollView 滚动视图暴露了一个contentOffset财产 文件here http developer apple com
  • 核心数据模型设计

    假设我有一个关于烹饪食谱的应用程序 具有两个基本功能 第一个涉及我正在准备的当前食谱 第二个存储了我决定保存的食谱 标准场景 我目前的食谱是 芝士蛋糕 RecipeDetailViewController我可以看到我为此食谱添加的当前成分
  • 不使用 ARC 时替换 __weak

    我有这行代码 weak NSBlockOperation weakOperation operation 这是触发此编译器错误 weak attribute cannot be specified on automatic variable
  • 翻转、生长和平移动画

    Look at 这个视频 http youtu be qIqv3OH9XIU t 1m12sMLB At Bat 应用程序的一部分 基本上 我只是想呈现一个modalViewController与UIModalPresentationFor
  • 处于编辑模式时滑动即可删除

    我有一个使用 uitableview 的 iPhone 应用程序 我希望始终显示 重新排序 控件 并让用户滑动以删除行 我目前采取的方法是将表格视图置于编辑模式并允许在编辑模式下进行选择 self tableView editing YES
  • CoreData:是否将图像存储到数据库?

    我正在制作一个应用程序 它从网站上为某些用户名拍摄照片 并将其显示在带有用户名的 UITable 中 然后当单击用户名时 它会显示该用户的照片 然后单击照片名称 它会显示全屏照片 我的问题是我正在使用 NSData 从互联网获取照片 我必须
  • NSDictionary 上的 NSPredicate

    我试图根据字母表在表格视图中创建部分 并在这些部分下按字母顺序对我的条目进行排序 我已经收集了 bandArrayIndex 中 bandArray 每个条目的第一个字母 现在我尝试使用 NSPredicate 来计算每个字母有多少个 我正
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • MapKit更新标注图像

    我在寻找更新自定义的方法时遇到问题MKAnnotationView异步请求完成后的图像 其中包含有关注释状态的信息 到目前为止 我有这个 MKAnnotationView mapView MKMapView mapView viewForA
  • 如何按字母顺序对 UITableView 分区进行排序?

    我有一个包含 3 个类别的分段 UITableView 我正在使用这段代码 NSArray arrayOne NSArray arrayWithObjects one two three four nil NSDictionary dict
  • NSPredicate IN 从数组元素查询

    对于一个古怪的标题表示歉意 我有一个 Int 数组 我想定义一个 NSPredicate 来过滤掉 connectionType 等于数组中包含的值的项目 所以基本上是这样的 fetchRequest predicate NSPredica
  • 如何在 UITableView 的 switch 语句中创建变量?

    我正在构建一个包含三个部分的 tableView 我已经完成了前两个工作 但最后一个有点阻力 我的问题似乎涉及尝试在 switch 语句中声明变量 实际上是嵌套的 switch 语句 据我所知 这不是一个好主意 但在这种情况下 这似乎是唯一

随机推荐