我希望能够在一个字符串中找到一个子字符串,但它有一个独特的模式,我不知道如何找到。
例如。
NSString *test1= @"Contact Names
67-444-322
Dec 21 2012
23941 6745 9145072 01567
5511 23345 614567 123456
Older Contacts
See Back Side";
我想在子字符串中找到以下模式(这些数字但不是日期数字)
23941 6745 9145072 01567
5511 23345 614567 123456
但是,示例字符串的格式几乎不会相同。除了“联系人姓名”、“旧联系人”和“见背面”之外,每次都会有不同的数字和不同的标题。将保持不变的一件事是,我正在寻找的数字将始终有 4 个数字,但可能有 1 行或 10 行。
有谁知道我将如何解决这个问题?我当时在想,也许只找到字符串中的数字,然后检查哪些数字之间有 3 个空格。
谢谢
最佳答案
我已经尝试了以下并且有效:
NSString *test1= @"Contact Names\n"
"67-444-322\n"
"Dec 21 2012\n"
"23941 6745 9145072 01567\n"
"5511 23345 614567 123456\n"
"Older Contacts\n"
"See Back Side";
NSString *pattern = @"(([0-9]+ ){3}+[0-9]+)(\\n(([0-9]+ ){3}+[0-9]+))*";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:test1 options:0 range:NSMakeRange(0, [test1 length])];
if ([results count] > 0) {
NSTextCheckingResult *result = [results objectAtIndex:0];
NSString *match = [test1 substringWithRange:result.range];
NSLog(@"\n%@", match); // These are your numbers
}
(如果只有一行数字,它也有效。)
关于ios - 在字符串中查找数字模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14315168/