【发布时间】:2015-10-24 16:34:29
【问题描述】:
我正在尝试使用正则表达式搜索字符串:"K1B92 (D) [56.094]",并且我想获取"(D)",包括"D" 周围的括号。我很难找到与实际括号匹配的正确表达式,因为简单地放置括号会将其视为一个块,并尝试使用 "\" 转义括号,使其认为这是一个要评估的表达式。我还尝试使用"\\(" 转义"\(",如下所示:"\\([ABCD])\\)",但没有运气。这是我一直在使用的代码:
let str = "K1B92 (D) [56.094]"
let regex = NSRegularExpression(pattern: "\\b\\([ABCD])\\)\\b", options: NSRegularExpressionOptions.CaseInsensitive, error: nil)
let match = regex?.firstMatchInString(str, options: NSMatchingOptions.WithoutAnchoringBounds, range: NSMakeRange(0, count(str)))
let strRange = match?.range
let start = strRange?.location
let length = strRange?.length
let subStr = str.substringWithRange(Range<String.Index>(start: advance(str.startIndex, start!), end: advance(str.startIndex, start! + length!)))
// "\\b\([ABCD])\)\\b" returns range only for the letter "D" without parentheses.
// "\\b\\([ABCD])\\)\\b" returns nil
请指导我正确的表达方式吗?非常感谢。
【问题讨论】:
标签: ios regex swift nsregularexpression