iOS:正则表达式:匹配带引号的字符串或不带引号的字符串
iOS: Regular expression: match either quoted string or string without quotes
我需要匹配从两边引用的字符串或根本没有前导和尾随引号的字符串。
我需要省略末尾带有单引号的字符串 - 前导引号或尾随引号。
这是我必须匹配的字符串:
- "somecharsinside"
- 一些字符
我有不匹配:
- "noquotefromtheright
- noquotefromtheleft
我正在尝试这样的事情:^\b.+|^\".^\"\b$
以下应该有效:
^([^\"]*|\".*\")$
任何非"字符或
" + 文字 + "
或者,如果您不想捕获,请添加 ?:
^(?:[^\"]*|\".*\")$
如果没有正则表达式,这项任务可能会更容易完成:
if ([s hasPrefix:@"\""] == [s hasSuffix:@"\""]) {
// String matches
}
最有可能的是,根据文档在此处使用 ==
是安全的,两种方法 return YES 都成功,而不是任意的非零值。但为了安全起见,您可以按照 here
所述比较 BOOL
我需要匹配从两边引用的字符串或根本没有前导和尾随引号的字符串。 我需要省略末尾带有单引号的字符串 - 前导引号或尾随引号。
这是我必须匹配的字符串:
- "somecharsinside"
- 一些字符
我有不匹配:
- "noquotefromtheright
- noquotefromtheleft
我正在尝试这样的事情:^\b.+|^\".^\"\b$
以下应该有效:
^([^\"]*|\".*\")$
任何非"字符或
" + 文字 + "
或者,如果您不想捕获,请添加 ?:
^(?:[^\"]*|\".*\")$
如果没有正则表达式,这项任务可能会更容易完成:
if ([s hasPrefix:@"\""] == [s hasSuffix:@"\""]) {
// String matches
}
最有可能的是,根据文档在此处使用 ==
是安全的,两种方法 return YES 都成功,而不是任意的非零值。但为了安全起见,您可以按照 here