Извлечь текст из строки Swift - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть массив строк, и я хочу извлечь только то, что внутри <>.

<div class=\"name\" title=\"&quot;User&quot; <John Appleseed>\">
<div class=\"name\" title=\"&quot;User&quot; <Bill Gates>\">

Итак, я ожидаю получить результат ["John Appleseed", "Bill Gates"]

1 Ответ

1 голос
/ 23 сентября 2019

Если вы отфильтровали правильные строки и структура строки такая же, вы можете использовать функции lastIndex(of:) и firstIndex(of:), чтобы найти внутреннюю пару <>, а затем извлечь подстроку из этой

if let first = str.lastIndex(of:"<"), let last = str.firstIndex(of:">") {
    let name = String(str[str.index(after: first)..<last])
}

Пример

let strings = ["<div class=\"name\" title=\"&quot;User&quot; <John Appleseed>\">", "<div class=\"name\" title=\"&quot;User&quot; <Bill Gates>\">"]

for str in strings {
  if let first = str.lastIndex(of:"<"), let last = str.firstIndex(of:">") {
    let name = String(str[str.index(after: first)..<last])
    print(name)
  }
}

производит

John Appleseed
Билл Гейтс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...