如何解析 NSString

How to parse a NSString

字符串是 myAgent(9953593875).Amt:Rs.594,想从中提取 9953593875。这是我尝试过的:

NSRange range  =  [feDetails rangeOfString:@"."];
NSString *truncatedFeDetails = [feDetails substringWithRange:NSMakeRange(0, range.location)];
NSLog(@"truncatedString-->%@",truncatedFeDetails);

这输出:truncatedString-->AmzAgent(9953593875)

喜欢

第一步

//先根据.

拆分字符串

例如

NSString *value = @"myAgent(9953593875).Amt:Rs.594.How I get 9953593875 only";

NSArray *arr = [value componentsSeparatedByString:@"."];

NSString * AmzAgent = [arr firstObject];  // or use  [arr firstObject];

NSLog(@"with name ==%@",AmzAgent);

在这里你得到myAgent(9953593875)

的输出

第 2 步

在这里使用像

这样的替换字符串
AmzAgent = [AmzAgent stringByReplacingOccurrencesOfString:@"myAgent("
                                               withString:@""];
AmzAgent = [AmzAgent stringByReplacingOccurrencesOfString:@")"
                                               withString:@""];

 NSLog(@"final ==%@",AmzAgent);

最后你得到输出 9953593875

或者你这样做:

NSString *string = @"myAgent(9953593875).Amt:Rs.594.";

NSRange rangeOne = [string rangeOfString:@"("];
NSRange rangeTwo = [string rangeOfString:@")"];

if (rangeOne.location != NSNotFound && rangeTwo.location != NSNotFound) {
    NSString *truncatedFeDetails = [string substringWithRange:NSMakeRange(rangeOne.location + 1, rangeTwo.location - rangeOne.location - 1)];
    NSLog(@"%@",truncatedFeDetails);

}

试试这个

NSString *str = @"myAgent(9953593875).Amt:Rs.594.";
NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern:@"(?<=\()\d+(?=\))"
                              options:NSRegularExpressionCaseInsensitive
                              error:nil];
NSString *result = [str substringWithRange:[regex firstMatchInString:str options:0 range:NSMakeRange(0, [str length])].range];
//result = 9953593875