gpt4 book ai didi

macos - 使用 NSString 查找匹配后的单词

转载 作者:行者123 更新时间:2023-12-03 17:50:54 24 4
gpt4 key购买 nike

我有各种日志文件要阅读。每个日志都包含设备(打印机)的报告。我能找到的总是“固件:”一词,后跟固件版本,例如:

PTRE firmware: XER8673B2

日志似乎不太有序,因此该文本的位置并不总是在同一点或同一行,但始终采用“PTRE Firmawre:XXXXXXX”格式。我怎样才能找到XER8673B2?如有任何帮助,我们将不胜感激。

已解决(感谢@roman-sausarnes),这是代码:

NSString *stringToSearch = [[NSString alloc] initWithContentsOfFile:@"path/to/log" encoding:NSUTF8StringEncoding error:nil];
NSString *preMatchString = @"PTRE firmware: ";
NSString *terminatingCharacter = @" ";
NSString *result = [[NSString alloc] init];

NSScanner *scanner = [NSScanner scannerWithString:stringToSearch];
[scanner scanUpToString:preMatchString intoString:NULL];
[scanner scanString:preMatchString intoString:NULL];
[scanner scanUpToString:terminatingCharacter intoString:&result];
NSLog(@"It's : %@", result);

输出为

It's : XER8673B2

最佳答案

看看NSScanner 。代码看起来像这样:

NSString *stringToSearch = theStringThatYouWantToSearch;
NSString *preMatchString = @"firmware: ";
NSString *terminatingCharacter = " ";
NSString *result = [[NSString alloc] init];

NSScanner *scanner = [NSScanner scannerWithString:stringToSearch];
[scanner scanUpToString:preMatchString intoString:NULL];
[scanner scanString:preMatchString intoString:NULL];
[scanner scanUpToString:terminatingCharacter intoString:&result];

最后,结果应该是“firmware:”之后但在下一个尾随空格(“”)之前的字符串。

关于macos - 使用 NSString 查找匹配后的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com