【发布时间】:2013-02-28 16:01:09
【问题描述】:
我有这个正则表达式
([0-9]+)\(([0-9]+),([0-9]+)\)
我用来构造一个没有选项 (0) 的 NSRegularExpression。该表达式应该匹配像
这样的字符串1(135,252)
并产生三个匹配项:1、135、252。现在,我已通过 debuggex.com 确认该表达式是正确的,并且符合我的要求。但是,iOS 拒绝承认我的努力和以下代码
NSString *nodeString = @"1(135,252)";
NSArray *r = [nodeRegex matchesInString:nodeString options:0 range:NSMakeRange(0, nodeString.length)];
NSLog(@"--- %@", nodeString);
for(NSTextCheckingResult *t in r) {
for(int i = 0; i < t.numberOfRanges; i++) {
NSLog(@"%@", [nodeString substringWithRange:[t rangeAtIndex:i]]);
}
}
坚持说
--- 1(135,252)
135,252
13
5,252
5
252
这显然是错误的。
想法?
【问题讨论】:
-
您的正则表达式代码看起来如何?它应该看起来像这样
[NSRegularExpression regularExpressionWithPattern:@"([0-9]+)\\(([0-9]+),([0-9]+)\\)" options:0 error:NULL];。注意模式中的 双 反斜杠。 -
哦,亲爱的。那是什么法术?好吧,当然,双反斜杠,好老 C... :-S 请将此作为答案发布:)
标签: ios objective-c regex nsregularexpression