2015-09-19 61 views
0

我需要匹配从双方引用的字符串或根本没有引号和尾随引号的字符串。 我需要省略最后有单引号的字符串 - 前导或尾随引号。iOS:正则表达式:匹配引号字符串或不带引号的字符串

这里是字符串我必须比赛

  • “somecharsinside”
  • somechars

不匹配

  • “noquotefromtheright
  • noquotefromtheleft “

我想是这样的:^\b.+|^\".^\"\b$

回答

2

下面应该工作:

^([^\"]*|\".*\")$ 

要么任何非” 字符 OR
“+文字+“

或者,如果你不想捕获添加?:

^(?:[^\"]*|\".*\")$ 

regex101 Link

+0

哇!非常感谢答案! – DaddyM

2

这个任务或许可以做到无正则表达式更简单:

if ([s hasPrefix:@"\""] == [s hasSuffix:@"\""]) { 
    // String matches 
} 

它最有可能是安全的,只是使用==这里按照文档,这两种方法在成功时返回YES,而不是任意的非零值。但要安全一面,您可以按照所述的比较BOOLs here

+0

我喜欢这个解决方案! :) – luk2302

+0

弗拉基米尔,谢谢。好想法。 Upvoted。 – DaddyM

相关问题