从文本中提取特定字符串

时间:2014-10-28 12:39:22

标签: string swift

我正在尝试从文本中提取特定字符串。我有一个与此类似的字符串:

"blablabla(/)Hello Bob(|)bla(/)Hi(|)blablaba"

我试图在(/)(|)之间连接一个字符串数组,但我无法找到一种有效的方法。在这个例子中,我想要返回" Hello Bob"和"嗨"。如何在Swift中有效地从字符串中提取特定字符串?

1 个答案:

答案 0 :(得分:2)

使用功能方法,您可以:

  • 将字符串拆分为(/),返回字符串数组
  • 对于数组的每个元素,将其转换为由(|)
  • 拆分的字符串数组
  • 过滤生成的数组,仅包含具有多个元素的值(数组)
  • 将结果数组的每个元素(数组)转换为第一个元素

这是代码:

let array = string.componentsSeparatedByString("(/)")
    .map { $0.componentsSeparatedByString("(|)") }
    .filter { $0.count > 1 }
    .map { $0[0] }

给定此输入字符串:

let string = "blablabla(/)Hello Bob(|)bla(/)Hi(|)blablaba"

结果是:

["Hello Bob", "Hi"]