Извлечение значения с помощью backla sh из строкового значения swift - PullRequest
0 голосов
/ 15 марта 2020

Привет, я пытаюсь получить значения строки, которая вменяется в форму "40|LQ,FP,MD,GR \"Dinner out\"". Строковое значение, которое я пытаюсь извлечь, - Dinner out, текст может отличаться, хотя и похож на ride in, но все равно следует той же схеме. как я могу извлечь это строковое значение из остальной части символа, используя регулярное выражение любой альтернативы.

Ответы [ 3 ]

0 голосов
/ 15 марта 2020

Я бы порекомендовал вам взглянуть на этот вопрос и его ответы.

Swift Получить строку между двумя строками в строке

Цитировать ответ здесь только для ваша легкость.

extension String {

func slice(from: String, to: String) -> String? {
        return (range(of: from)?.upperBound).flatMap { substringFrom in
            (range(of: to, range: substringFrom..<endIndex)?.lowerBound).map { substringTo in
                String(self[substringFrom..<substringTo])
            }
        }
    }
}
0 голосов
/ 15 марта 2020

Самое простое - использовать .range, как показано ниже

demo

let input = "40|LQ,FP,MD,GR \"Dinner out\""
if let range = input.range(of: "(?<=\").+(?=\")", options: .regularExpression) {
    let output = input[range]
    print(output)
}
0 голосов
/ 15 марта 2020

Можете попробовать

var text =  "40|LQ,FP,MD,GR \"Dinner out\""

var regex = try? NSRegularExpression(pattern: "\\\".+?\\\"", options: [])

var matches = regex?.matches(in: text, options: []
    , range: NSMakeRange(0, text.count)) ?? []

for match in matches {
    let r = (text as NSString).substring(with: match.range)
    print("found= \(r)")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...