2
<NSSimpleRegularExpressionCheckingResult: 0x100217890>{0, 4}{<NSRegularExpression: 0x100214700> test 0x1}

这是存储正则表达式搜索结果的数组中的一个元素。

我得到了我想要的:“测试”。但是我不想要它周围的所有东西,即

<NSSimpleRegularExpressionCheckingResult: 0x100217890>{0, 4}{<NSRegularExpression: 0x100214700> etc

我有一种感觉,我将不得不向这个元素发送一些东西,即

[元素字符串值];

但我需要一点帮助来发现那是什么..

我的完整代码如下:

NSString *test = @"test 123 test";
NSRegularExpression* regex = [[NSRegularExpression alloc] initWithPattern:@"test" options:NSRegularExpressionCaseInsensitive error:nil];
NSArray* result = [regex matchesInString:test options:0 range:NSMakeRange(0, [test length])];
NSLog(@" %@", [result objectAtIndex:0]);

这表明

 <NSSimpleRegularExpressionCheckingResult: 0x105b17890>{0, 4}{<NSRegularExpression: 0x105b14700> test 0x1}

谢谢!!

4

2 回答 2

3
[regex matchesInString...

为您提供 NSTextCheckingResults 的 NSArray。也许您想使用 firstMatchInSting:options:range: 它将为您提供 NSTextCheckingResult,您可以从中获取范围 (NSRange),您可以使用 substringWithRange: 方法将其应用于您的字符串。

我希望你能够明白。如果不是 - 我会更仔细地解释。不过,请阅读NSRegularExpression 参考NSTextCheckingResult 参考

于 2012-06-15T16:00:04.730 回答
0

好的。我正在制作过程。如果我将“regularExpression”发送到元素,它会将结果缩小到

<NSRegularExpression: 0x106214700> test 0x1

我知道这是一个对象的打印输出,但我仍然不确定如何隔离文本!

于 2012-06-15T15:48:45.627 回答