首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NSPredicate:怎么做不EndsWith?

在使用NSPredicate时,如果需要进行不以某个字符串结尾的过滤,可以使用以下代码:

代码语言:swift
复制
let predicate = NSPredicate(format: "NOT self ENDSWITH %@", "string")

其中,"string" 是需要排除的结尾字符串,"NOT" 表示取反,"ENDSWITH" 表示以某个字符串结尾。

以下是一个完整的示例代码:

代码语言:swift
复制
let array = ["apple", "banana", "orange", "grape", "pineapple"]
let predicate = NSPredicate(format: "NOT self ENDSWITH %@", "apple")
let filteredArray = (array as NSArray).filtered(using: predicate) as! [String]
print(filteredArray) // ["banana", "orange", "grape", "pineapple"]

在这个示例中,我们使用了一个包含水果名称的数组,使用NSPredicate过滤掉以"apple"结尾的字符串,最终得到了一个不以"apple"结尾的水果名称数组。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS-谓词的使用详解import typedef NS_ENUM(NSInteger, PersonSex) {

一、NSPredicate基本语句 只要我们使用谓词(NSPredicate)都需要为谓词定义谓词表达式,而这个表达式必须是一个返回BOOL的值。 谓词表达式由表达式、运算符和值构成。...] string:abcdefg``` `ENDSWITH` :检查某个字符串是否以指定的字符串结尾 `CONTAINS` :检查某个字符串是否包含指定的字符串 `LIKE` :检查某个字符串是否匹配指定的字符串模板...如果希望字符串比较运算区分大小写和重音符号,请在这些运算符后使用`[c]`,`[d]`选项。...其中`[c]`是区分大小写,`[d]`是区分重音符号,其写在字符串比较运算符之后,比如:`"name LIKE[cd] 'cafe'"`,那么不论`name`是cafe、Cafe还是café上面的表达式都会返回...下列单词都是保留字(不论大小写) >AND、OR、IN、NOT、ALL、ANY、SOME、NONE、LIKE、CASEINSENSITIVE、CI、MATCHES、CONTAINS、BEGINSWITH、ENDSWITH

1.6K50

OC学习14——谓词

一、谓词的基本概念与使用 1、谓词(NSPredicate)用于定义一个逻辑条件,通过该条件可执行搜索或内存中的过滤操作。上一篇文章中介绍的集合都提供了使用谓词对集合进行过滤的方法。...2、创建谓词之后,如果谓词中没有占位符,则可以直接使用NSPredicate的evaluateWithObject:方法计算谓词的结果,该结果总是一个BOOL值; 1 #import <Foundation...:逻辑非 3、字符串比较运算符: BEGINSWITH:检查某个字符串是否以指定的某个子串开头 ENDSWITH:检查某个字符串是否以指定的某个子串结尾 CONTAINS:检查某个字符串是否包含指定的某个子串...检查某个字符串是否匹配指定的字符串模板 MATCHES:检查某个字符串是否匹配指定的正则表达式   上述方法都是区分大小写的,如果要不区分大小写和重音符号,则可以在运算符后面使用[c]、[d]选项,其中[c]指定区分大小写...,[d]指定区分重音符号。

1.1K100

编码篇 - 正则表达式及其相关

文章脉络 谓词(NSPredicate) Predicate(谓语)的意思。NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索。...:逻辑非,对原有的表达式取反 字符串比较运算符 BEGINSWITH:检查某个字符串是否以指定的字符串开头(如判断字符串是否以a开头:BEGINSWITH 'a') ENDSWITH:检查某个字符串是否以指定的字符串结尾...如果希望字符串比较运算区分大小写和重音符号,请在这些运算符后使用[c],[d]选项。...其中[c]是区分大小写,[d]是区分重音符号,其写在字符串比较运算符之后,比如:name LIKE[cd] 'cafe',那么不论name是cafe、Cafe还是café上面的表达式都会返回YES。...# NSRegularExpressionOptions; NSRegularExpressionCaseInsensitive = 1 << 0, // 区分大小写的

99020

30分钟摸透iOS中谓词NSPredicate的来龙去脉

二、NSPredicate类的应用解析     NSPredicate提供创建谓词对象和解析谓词对象的方法,它也是Cocoa中有关谓词的类中的基类。...中其他属性与方法解析如下: //创建一个总是验证通过(YES)或不通过(NO)的谓词对象 /* 如果创建的是验证通过的,则任何检索都会成功进行返回,否则任何检索都会失败返回任何对象 */ + (NSPredicate...*)predicateWithValue:(BOOL)value; //自定义实现检索函数 /* 例如前面的示例也可以这样写 NSPredicate * predicate = [NSPredicate...NS_OPTIONS(NSUInteger, NSComparisonPredicateOptions) { NSCaseInsensitivePredicateOption = 0x01, //区分大小写...NSDiacriticInsensitivePredicateOption = 0x02,//区分读音符号 NSNormalizedPredicateOption //比较前进行预处理

1.4K20

MagicalRecord,一个简化CoreData操作的工具库

如果工程有DEBUG标记,此时使用默认的SQLite数据存储,创建新的版本的数据模型而是直接改变数据模型本身的方式,将会删除旧的存储并自动创建一个新的.这会节省大量的时间 - 不再需要在改变数据模型后每次都重新卸载和安装应用...请确保发布应用时,不开启 DEBUG 标记: 告知用户,直接删除应用的数据,真的很不好!...= [Person MR_findAllWithPredicate:peopleFilter]; 返回 一个 NSFetchRequest NSPredicate *peopleFilter = [NSPredicate...自定义查询请求 NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"Department IN %@", departments...往往,要导入的数据中的键和结构和你的实体属性与关系匹配.在这种情况下,你需要告诉 MagicalRecord 如何映射你要导入的数据的键到你的CoreData模型中匹配的属性或关系.

1.5K50

iOS 深思篇 | 正则表达式

元字符代表他们本身的字面意思, 他们都有特殊的含义. 一些元字符写在方括号中的时候有一些特殊的意思. 以下是一些元字符的介绍: 元字符 描述 . 句号匹配任意单个字符除了换行符 [] 字符种类....匹配一个制表符 \v 匹配一个垂直制表符 \p 匹配 CR/LF (等同于 \r\n),用来匹配 DOS 行终止符 2.3.3 零宽度断言(前后预查) 先行断言和后发断言都属于非捕获簇(不捕获文本 ,也针对组合计进行计数...先行断言用于判断所匹配的格式是否在另一个确定的格式之前, 匹配结果包含该确定格式(仅作为约束). 例如, 我们想要获得所有跟在 符号后的数字, 我们可以使用正后发断言 (?...重复n次以上,但尽可能少重复 3. iOS 中的应用 3.1 谓词(NSPredicate) NSString *regex = @"^[0-9]+$"; NSPredicate *predicate...= [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; NSString *str = @"1314"; if ([predicate

2.9K20

iOS中的正则表达式,一篇就够了

正则表达式的语法 看一个过滤纯数字的例子 -(BOOL)validateNumber:(NSString ) textString { NSString number=@"^[0-9]+$"; NSPredicate...*numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",number]; return [numberPre evaluateWithObject...在方括号里用’'表示希望出现的字符,’'应在方括号里的第一位。 “@[^a-zA-Z]4@”表示两个”@”中不应该出现字母)。 常用的还有: “ \d ”匹配一个数字字符。等价于[0-9]。...iOS中书写正则表达式,碰到转义字符,多加一个“\”,例如: 全数字字符:@”^\d+$” 三、iOS中正则表达式   1.正则表达式与NSPredicate连用,eg: -(BOOL)validateNumber...:(NSString ) textString { NSString number=@"^[0-9]+$"; NSPredicate *numberPre = [NSPredicate predicateWithFormat

4.3K110
领券