Iphone 正则表达式获取2个字符串中的字符串

Iphone 正则表达式获取2个字符串中的字符串,iphone,objective-c,regex,Iphone,Objective C,Regex,我希望得到艺术家的名字,所以Travie McCoy在代码中使用regex,请不要,如果这改变了情况,我将在iphone sdk中使用regexkitlite 谢谢“?artistName”?\s*:\s*”([^“]*)(“|$)应该可以做到这一点。它甚至可以处理字符串中的一些变化: : artistName带引号和不带引号 艺术家姓名末尾缺少“,如果这是行中的最后一项 但是,您可能会遇到更多的输入变体,而这个正则表达式将不匹配 此外,出于性能原因,您也不希望使用正则表达式来匹配它。现在您

我希望得到艺术家的名字,所以Travie McCoy在代码中使用regex,请不要,如果这改变了情况,我将在iphone sdk中使用regexkitlite

谢谢

“?artistName”?\s*:\s*”([^“]*)(“|$)
应该可以做到这一点。它甚至可以处理字符串中的一些变化:

  • artistName
    带引号和不带引号
  • 艺术家姓名末尾缺少
    ,如果这是行中的最后一项
但是,您可能会遇到更多的输入变体,而这个正则表达式将不匹配

此外,出于性能原因,您也不希望使用正则表达式来匹配它。现在您可能只对
artistName
字段感兴趣。但过一段时间,您将需要来自其他字段的信息。如果只是更改正则表达式中的字段名,则必须再次匹配整个字符串。最好使用解析器并将整个字符串转换为字典,以便轻松访问不同的字段。解析整个字符串的时间不应该比使用正则表达式匹配最后一个键/值对的时间长

这看起来像某种JSON,有很多好的、完整的解析器可用。不过,自己写一本并不难。你可以在几个小时内写一篇简单的文章。我认为这是每个程序员至少应该做一次的事情

"artistName":"Travie McCoy", "collectionName":"Billionaire (feat. Bruno Mars) - Single", "trackName":"Billionaire (feat. Bruno Mars)",

这是针对目标c的

,我确信有一个解析器。你不想用正则表达式来做这件事。老实说,我更喜欢正则表达式,我正在努力学习it@user:可能是这样,但这对于正则表达式来说确实是一个糟糕的例子。每当嵌套结构(是的,CSV或JSON是嵌套结构)需要解析时,请使用解析器。正则表达式无法处理嵌套结构。你可能会接近,但你永远不会覆盖100%。——不可避免地,会有人来提供一个基于正则表达式的有效答案。除了角落里的箱子。这当然永远不会发生。除非他们这样做。使用时自担风险。;-)“两个字符串”是什么意思?它看起来像一个长的逗号分隔的字符串,包含引号和字符。确认这一切都在一个字符串中,并且可以生成正则表达式。感谢这一点,我得到了一些有用的东西,是的,我编写了自己的xml解析器。但我就是不能被这个了不起的人惹火(谢谢:),是的,我写了自己的解析器,我做了一个xml解析器,我讨厌nsxmlparser:)
\"?artistName\"?\s*:\s*\"([^\"]*)(\"|$)