【问题标题】:Extracting an NSString from both Parenthesis and Quotations从括号和引号中提取 NSString
【发布时间】:2012-08-02 11:58:50
【问题描述】:

我有一个从 WebAPI 调用返回的字符串,如下所示:

    (
    "username@domain.com"
    )

作为一种解决方法,我尝试仅提取电子邮件地址,即 username@domain.com

我不确定执行此操作的最佳方法是什么,因为我正在提取括号和引号中的数据。

感谢任何指针(没有双关语)。

【问题讨论】:

  • Web 客户端返回 JSON 不是偶然的吗?喜欢["email@domain.com"]

标签: objective-c nsstring nsscanner


【解决方案1】:

最简单的方法是使用stringByTrimmingCharactersInSet:

NSString *source = /* your source */;
NSCharacterSet *charSet = 
    [NSCharacterSet characterSetWithCharactersInString:@" \"()\n"];
NSString *email = [source stringByTrimmingCharactersInSet:charSet];

更难的是NSRegularExpression

【讨论】:

  • 谢谢。尝试了 NSMakeRange 和 stringByTrimmingCharactersInSet 两次我都收到错误:-[__NSArrayI length]: unrecognized selector sent to instance 0x4e42c0
  • 这意味着您的变量不是字符串,而是NSArray。尝试打印以记录[source objectAtIndex:0],也许你的括号只是数组符号的一部分,而不是字符串。
【解决方案2】:

如果您知道字符串始终以 (" 开头并以 ") 结尾,则更简单:

NSString *email = [response substringWithRange:NSMakeRange(2, [response length] - 4)];

【讨论】:

    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多