如何在 iOS 中使用 NSRegularExpression 替换字符串?

How can I replace string using NSRegularExpression in iOS?

例如 regular 表达式是:

A(B)C

A,B,C 都代表一些 string.I 想要所有字符串匹配 A(B)C 替换为 B.

如果 NSString 是 AABCAABCBBABC:

answear 会 ABABBBB.How 做到这一点?谢谢。

我举个更具体的例子:

<script\stype="text/javascript"[\s\S]*?(http://[\s\S]*?)'[\s\S]*?</script>

答案是一些脚本数学和 http:// url 匹配。 我想用每个 http:// url 匹配来替换每个脚本匹配。我解释清楚了吗?

一种解决方案可以使用 stringByReplacingMatchesInString:

NSString *strText = @"AABCAABCBBABC";
NSError *error = nil;
NSRegularExpression *regexExpression = [NSRegularExpression regularExpressionWithPattern:@"ABC" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *strModifiedText = [regexExpression stringByReplacingMatchesInString:strText options:0 range:NSMakeRange(0, [strText length]) withTemplate:@"B"];
NSLog(@"%@", strModifiedText);

另一个解决方案可以使用 stringByReplacingOccurrencesOfString :

strText = [strText stringByReplacingOccurrencesOfString:@"ABC" withString:@"B"];