objective c regex在替换之前将匹配转换为大写

时间:2015-02-16 03:20:29

标签: objective-c regex uppercase

考虑以下代码

NSString* originalString = @"I love regex. regex is cool.";
NSString* regexString = [NSString stringWithFormat:@"(regex)"];
NSString* replaceWithString = @"[$1]";
NSString* finalString = [htmlString stringByReplacingOccurrencesOfRegex:regexString withString:replaceWithString];

输出结果为:

  

我喜欢[正则表达式]。 [正则表达式]很酷。

我想要的是

  

我爱[REGEX]。 [REGEX]很酷。

,即$ 1类型组的toUpperCase()匹配。

我似乎可以使用replacementStringForResult:inString:offset:template:执行此操作,但不知道如何操作。有人可以帮忙。

1 个答案:

答案 0 :(得分:0)

您可以使用RegexKit来实现您想要的效果:

upper = [originalString stringByMatching:@"(regex)"
                        replace:RKReplaceAll
                        withReferenceString:@"[\\U$1\\E]"]; 
// I love [REGEX]. [REGEX] is cool.

参考文献: