如何在 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:@""];
我正在尝试创建一个正则表达式来减少缩写中的州名称。例如,字符串 "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:@""];