objective-c - 使用 PERL 兼容的正则表达式忽略查询中的字符串大小写

标签 objective-c ios regex perl

我正在使用 Parse作为我的 iOS 应用程序的后端(他们将自己的框架添加到项目中,添加用于他们的数据库的方法)。它是一个简单的数据库,其中包含一个列,其中包含我存储的文件的名称。现在,当我使用他们的 containsString 方法进行查询时,该方法只返回每个字母都具有匹配大小写的结果。所以搜索“john”不会返回“John”。但他们确实可以选择使用允许正则表达式输入的 matchesRegex 方法。我想知道如何使用正则表达式表示结果应包含我的输入字符串,但需要忽略其大小写?因此,如果我搜索“john”,它将与“John”、“JOHN”等匹配。

所以它看起来像这样:

[query whereKey:@"file_name" matchesRegex:@"something_that_returns_all_johns"];

他们使用 PERL 兼容的正则表达式。

最佳答案

在 PCRE 中,您可以将正则表达式的一部分标记为不区分大小写,方法是将其包装在 (?i:...) 中或在其前面加上 (?i)。通常有一种单独的带外方式来指示整个正则表达式不区分大小写,但如果 Parse API 不提供这种方式,那么您可以只应用部分 -对整个正则表达式的正则表达式方法,使用以下任一方法:

[query whereKey:@"file_name" matchesRegex:@"(?i:john)"];
[query whereKey:@"file_name" matchesRegex:@"(?i)john"];

(假设 Parse 支持 PCRE 的这些特性:它可能支持)。

关于objective-c - 使用 PERL 兼容的正则表达式忽略查询中的字符串大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9370081/

相关文章:

ios - 从 Swift 生成的 Objective-C header

ios - 如何从 PHAsset 获取原始图像和媒体类型?

objective-c - 编辑对象的值并复制它

ios - 自定义对象的 UIAppearance 代理

ios - 多个不同尺寸的自定义单元

ios - 使用检索到的核心数据

ios - 如何向 UITableViewCell 添加部分?

Java 正则表达式不匹配 - 在 perl 中正常

regex - 继续 bash 脚本

ASP.NET Youtube channel 正则表达式