iOS NSScanner 从 2 个不同的输入中选择一个特定的字符串

标签 ios objective-c string nsscanner

我传入了以下样式字符串:

 <p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F79039882"></iframe></p> 

<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F82229979&amp;color=ff6600&amp;auto_play=true&amp;show_artwork=true"></iframe></p>

我需要从给定的字符串中过滤掉字符串“79039882”或“82229979”。

目前我正在使用以下代码:

NSString * temp1;
NSScanner *scanner = [NSScanner scannerWithString:label];
            [scanner scanUpToString:@"%2Ftracks%2F" intoString:nil];
            [scanner scanString:@"%2Ftracks%2F" intoString:nil];
            [scanner scanUpToString:@"&" intoString:&temp1];

不幸的是,它在格式化为第一个的字符串上失败。我如何才能解释这两种类型?

在 temp1 中传递第一个样式的字符串时,结果如下:

79039882"></iframe></p>

最佳答案

因为您只需要数字,所以请使用描述它的 NSCharacterSet 以及 scanCharactersFromSet:intoString:

// Don't create this more than once if possible.
NSCharacterSet * decimalCharSet = [NSCharacterSet decimalDigitCharacterSet];
//...    
[scanner scanCharactersFromSet:decimalCharSet
                    intoString:&temp1];

关于iOS NSScanner 从 2 个不同的输入中选择一个特定的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137562/

相关文章:

iPhone/xCode - 第四次运行动画代码时的 EXC_BAD_ACCESS

python - 在for循环中操作字符串

ios - 在 iOS 上的 applicationDidBecomeActive() 后 Unity3D 应用程序崩溃

iphone - 从多个 UIButtons 调用一个选择器

iphone - 获取音频路由给出空字符串

java - 让 Collections.binarySearch() 与 CompareToIgnoreCase 一起使用?

python - 使用 Python 正则表达式捕获组的所有重复项

ios - Facebook ios sdk authorize 打开两个权限请求对话框

ios - 当我转到主屏幕并返回时,iPhone 应用程序像错误一样关闭

ios - -ObjC 链接器标志 - 尝试将其添加到 "Other Linker Flags"时出现错误