1

我正在尝试学习正则表达式,但我不明白如何将其正确设置为 NSRegularExpression。我需要获取字符串中任何括号的内容。

所以:Belmont (O'Hare Branch) (Forest Pk-bound)

会给我:'O'Hare Branch' 和 'Forest Pk-bound'

我真的很感激一个评论的例子。

谢谢!

4

2 回答 2

3

\(.*?\)会给你括号之间的一切。抱歉,我不知道如何在 NSRegularExpression 中执行此操作。您要么必须等待 IOS 开发人员出现,要么自己想办法。

\( #escaped opening bracket
  . #match anything
  * #match . 0 - unlimited times
  ? #make the * not greedy
\) #escaped closing bracket
于 2012-07-23T20:29:29.457 回答
2
@"\\(.*?\\)"

会做这项工作。

注意:支持 这样的嵌套括号:

Hi duck (debug duck (now just a regular duck))

因此,整个解决方案将是:

NSString *string = @"Hi duck (debug duck), let's go to shower!";
NSRange range = NSMakeRange(0, [string length]);
NSString *pattern = @"\\(.*?\\)";
NSError  *error = nil;

NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:string options:0 range:range]; 

NSLog(@"%@", [string substringWithRange:[match rangeAtIndex:0]]);
于 2015-06-23T07:26:59.587 回答