String 从文本中提取特定字符串

String 从文本中提取特定字符串,string,swift,String,Swift,我正在尝试从文本中提取特定字符串。我有一个类似的字符串: "blablabla(/)Hello Bob(|)bla(/)Hi(|)blablaba" 我试图在(/)和(|)之间连接一个文本字符串数组,但我无法找到一种有效的方法来实现这一点。在本例中,我希望返回“Hello Bob”和“Hi”。如何有效地从Swift中的字符串中提取特定字符串?使用函数方法,您可以: 将字符串拆分为(/),返回字符串数组 对于数组的每个元素,将其转换为一个字符串数组,由(|) 筛选结果数组,仅包括具有多个元素的

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

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

我试图在
(/)
(|)
之间连接一个文本字符串数组,但我无法找到一种有效的方法来实现这一点。在本例中,我希望返回“Hello Bob”和“Hi”。如何有效地从Swift中的字符串中提取特定字符串?

使用函数方法,您可以:

  • 将字符串拆分为
    (/)
    ,返回字符串数组
  • 对于数组的每个元素,将其转换为一个字符串数组,由
    (|)
  • 筛选结果数组,仅包括具有多个元素的值(数组)
  • 将结果数组的每个元素(数组)转换为其第一个元素
代码如下:

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"]