Я пытаюсь использовать регулярное выражение для поиска по строке: "K1B92 (D) [56.094]"
, и я хочу захватить "(D)"
, включая круглые скобки вокруг "D"
. У меня возникли проблемы с поиском правильного выражения в соответствии с фактическими круглыми скобками, поскольку простое размещение круглых скобок примет его как блок и пытается избежать круглых скобок с "\"
, заставляя его думать, что это выражение будет оценено. Я также попытался убежать "\("
с "\\("
так: "\\([ABCD])\\)"
, но без везения. Это код, который я использовал:Swift - регулярное выражение для сопоставления круглых скобок
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
Может направить меня к правильному выражению, пожалуйста? Большое спасибо.
Я идентифицировал ее круглые скобки, это был оригинальный вопрос, но ваш ответ является наиболее полным. Я проголосовал за это и считаю, что это должен быть принятый ответ. (комментарий исправлен для использования правильного местоимения при обращении к OP) – vacawama
Это решение отлично работает. Спасибо, Мартин Р и Вакавама за ответ, если так быстро. Очень ценится –