- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
通过查看 NSTextCheckingResult
的文档,我的印象是如果在 NSRegularExpression
搜索中找不到匹配项,则 NSCheckingResult
的范围属性> 将被设置为 {NSNotFound,0}
从下面的测试中,我发现如果未找到匹配项,NSCheckingResult
范围将设置为 {0,0}
。这是一个小问题,但我只是想阐明我对它的工作原理的理解。
// REGEXPRESSION
NSString *textBuffer = @"1234567890";
NSString *pattern = @"(([A-Z]+))";
NSRegularExpression *regExp = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSTextCheckingResult *match = [regExp firstMatchInString:textBuffer options:0 range:NSMakeRange(0, [textBuffer length])];
// ERROR CHECK
if([match range].location == NSNotFound) NSLog(@"Match Not found");
NSLog(@"location: %d", [match range].location);
NSLog(@"length : %d", [match range].length);
// OUTPUT
location: 0
length : 0
编辑:在此示例中,NSTextCheckingResult *match
被设置为 nil
,这可能是位置和长度返回零(消息到 nil 对象)的原因。
if(!match) NSLog(@"Match Not Found");
因此我猜测 NSNotFound
仅在存在多个捕获组时才返回,其中它代表一个空组。
最佳答案
是的,这是因为空匹配。 {NSNotFound, 0}
可以通过 rangeAtIndex:
为没有参加比赛的组返回。
关于iphone - NSCheckingResult 范围属性未设置为 {NSNotfound,0}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210337/
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
NSNotFound 到底是多少? 根据 this帖子,它是 NSIntegerMax。(虽然我在 XCode 的 iOS 9.3 上找不到。) 那么在64位系统中,应该是2^64-1还是2^63-1
NSNotFound 的 Xcode 文档非常困惑: 上面写着“在 iOS 2.0 到 8.4 中可用”和“可用性:iOS 8.1 到 8.0”。所以... 8.0之前可以用吗?还是9.0+?另外,如
我需要知道是否有一种方法可以表明在 Java Android 中找不到 int 类型。我正在编写一个android应用程序,它实际上是首先为Iphone编写的,并且有一个小问题。在某些时候,我必须检查
因为我将一个 Integer 值存储到 NSUserDefaults 中,因为它在很多地方都被使用过。第一次它工作正常但是当我关闭我的应用程序并再次打开它时我检查用户是否已经选择了过去 feom NS
在上面的屏幕截图中,您可以看到 rangeOfString 返回了字符串“Why was #ThisIsACoup trending? - BBC News”中“DEnt”的位置 我希望它返回 NSN
我通过 Antony 找到了这个解决方案用于验证 URL。 - (BOOL)isValidURL { NSUInteger length = [self length]; // Emp
如果我有一个返回 CGFloat 的方法并且该方法找不到预期的数字怎么办,我想返回类似 NSNotFound 的东西,但那是一个 NSInteger。 最佳实践是什么? 最佳答案 您可以使用不是数字(
在向一些 Objective-C 代码添加桥接 header 后,我开始收到有关 NSNotFound 是不明确引用的编译器错误。我的猜测是它可以用某种模块前缀来修复... 最佳答案 是的。将其更改为
通过查看 NSTextCheckingResult 的文档,我的印象是如果在 NSRegularExpression 搜索中找不到匹配项,则 NSCheckingResult 的范围属性> 将被设置为
你好,我对 NSCalendar 的 rangeOfUnit() 方法有疑问。我得到 NSNotFound 值,而我期望值在 范围内(一个月中的周数)。真正让我担心的是它依赖于平台(不适用于 iOS
NSNotFound 定义为 NSIntegerMax,定义为 LONG_MAX。 NSRange.location 定义为 NSUInteger。 某些 Foundation 方法返回一个 NSRa
我有一个 nsmutablearray,我在一个 nsarray 的 for 循环中向它添加对象。我希望它添加对象,直到它从 NSArray 到达 indexOfObject: 中的 NSNotFou
我正在为 NSArray 开发一个类别,我实现的其中一个函数旨在返回数组中的字符串数(或不是数字)。这一切都很好,但我的问题是关于在输入数组的计数为零的情况下使用 NSNotFound 作为返回。 A
NSNotFound被定义为NSIntegerMax,在32位和64位有不同的值,这给持久化和分布式环境带来了很多不便。为什么不定义为-1呢? PS,在 ObjC 和 Cocoa 中,有些 index
我正在检查我的一个应用程序中的一些旧代码,并修复可能存在问题的区域中的代码。 我看到很多旧代码使用... NSRange range = //determine range here.... if(r
我正在使用 this名为 Vfr Reader 的开源控件可在我的应用程序中显示 pdf 文件。一切都在 iOS 7 上运行。在 iOS 更新后,当我尝试打开 pdf 文件时应用程序崩溃。 我正在使用
我有这个代码: NSIndexSet *indexes = [anOrderedSet indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx
我是一名优秀的程序员,十分优秀!