存在多个键时如何更改特定的值范围?

时间:2018-10-04 15:00:38

标签: objective-c regex nsregularexpression

我有这个字符串:

Avarage Age=12 <-> 25 ; Pension Age=60 <-> 72; Nationality=[UK, USA, German, France]

最终目标是应用正则表达式来更改指定字段的范围,例如:从'Age=12 <-> 25'更改为'Age=10 <-> 30'

我该怎么做?

我已经尝试过,但是我有两个问题:

(1)如果我进行了正则表达式搜索(例如:):/d+<->d+/ig,它将同时返回Age和Pension Age。我可以制作一个正则表达式来搜索KEY = range 但是但只返回范围(返回意味着我可以替换为另一个范围)?

(2)这样(只是返回我需要的东西:年龄):

NSString *pattern = @"Age=\d+<->\d+";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&
NSString *modifiedString = [regex stringByReplacingMatchesInString:string
                                                           options:0
                                                             range:NSMakeRange(0, [string length])
                                                      withTemplate:@"**??????**"];

如何从 withTemplate 更改整数12和25?

1 个答案:

答案 0 :(得分:0)

您不需要任何花哨的东西。只需在用于Age=的值中包含withTemplate:

NSString *pattern = @"Age=\d+<->\d+";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&
NSString *modifiedString = [regex stringByReplacingMatchesInString:string
                                                           options:0
                                                             range:NSMakeRange(0, [string length])
                                                      withTemplate:@"Age=10 <-> 30"];