1

我有以下正则表达式

regex = [NSRegularExpression regularExpressionWithPattern:@"(.*)|(.*)"
                                                  options:NSRegularExpressionCaseInsensitive
                                                    error:&error];

我想用文本字段中的值替换与此正则表达式匹配的第一组字符串。

例如,如果我有Hi|Peter并替换为Goodbye我得到Goodbye|Peter

我怎样才能做到这一点?

4

1 回答 1

8

这是你想要的?

NSString *s1 = @"Hi|Peter";
NSError *error;
NSString *pattern = @"(.*)\\|(.*)";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
                                      options:NSRegularExpressionCaseInsensitive
                                    error:&error];
NSString *s2 = [regex stringByReplacingMatchesInString:s1
                           options:0
                         range:NSMakeRange(0, [s1 length])
                      withTemplate:@"Goodbye|$2"];
NSLog(@"%@", s2);
// Output: Goodbye|Peter

$2在替换模板中指的是第二个捕获组。请注意,您必须转义“|” 正则表达式中的字符。

于 2013-04-11T09:59:02.177 回答