如何在 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"];
例如 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"];