У меня есть строка, которая:Как записать слова вокруг шаблона регулярных выражений?
let s : String = "The dog ate the cat."
со следующей схемой:
let p : NSRegularExpression = try! NSRegularExpression(pattern: "\\w()?dog()?\\w"), options: .CaseInsensitive)
Мой вопрос: Как я могу получить слова до и после появления паттерна?
Это моя текущая реализация:
let t : [NSTextCheckingResults] = p.matchesInString(s, options: [], NSMakeRange(0, NSString(string: s).length))
print(String(t[0].URL!))
Однако это не возвращает желаемый результат.
Что не так с моим регулярным выражением?
Вашего шаблон ток становится 'е собаки a' это то, что вы на самом деле хочешь? См. Здесь: https://regex101.com/r/zM6aF2/1 –
Нет, это не так. Хотя это больше информации, чем раньше. Все Xcode показывает, когда я печатаю: «\\ w()? Dog()? \\ w" –
Ну, я не разработчик ios. Я делился своими знаниями только с регулярным выражением. Не знаю, требует ли objC scaping или нет. Хотя в регулярном выражении шаблон, который вам нужен, чтобы получить то, что вы задаете в своем вопросе, будет '(. +) \ Bdog \ b (. +)', После чего вы получите группы захвата из него. См. Это регулярное выражение, работающее здесь: https://regex101.com/r/zM6aF2/2 –