如何在 iOS 中编写带全局搜索的正则表达式?

How to write regular expression with global search in iOS?

我正在尝试创建一个正则表达式来减少缩写中的州名称。例如,字符串 "New York" 应替换为 "NY".

我带着这个 /[^[A-Z]/g 来了。我在这里测试了它:http://regexr.com 并且有效!

当我在 objective-c 代码中编写它时,它不起作用。

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^A-Z]/g" options:NSRegularExpressionCaseInsensitive error:&error];

NSString *abbreviation = [regex stringByReplacingMatchesInString:self.state options:0 range:NSMakeRange(0, [self.state length]) withTemplate:@""];

我对正则表达式不是很有经验。为什么那不起作用? (这可能是一个愚蠢的错误,但我找不到)

正则表达式中的 \g 是什么?尝试使用 @"[^A-Z]"@"[^A-Z]+" 选项 0:

在iOS中使用正则表达式搜索或替换真的很贪心,搜索或替换范围取决于range在正则表达式函数的参数中。

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^A-Z]" options:0 error:&error]; // or @"[^A-Z]+"

NSString *UF = [regex stringByReplacingMatchesInString:@"New York" options:0 range:NSMakeRange(0, [@"New York" length]) withTemplate:@""];