2014-10-28 65 views
0

我想從我的文本中提取特定的字符串。我有一個類似的字符串:從文本中提取特定的字符串

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

,我試圖連接文本的(/)(|)之間的字符串數組,但我不能想出一個有效的方式來做到這一點。在這個例子中,我想返回「Hello Bob」和「Hi」。我如何從Swift中的字符串中有效地提取特定的字符串?

回答

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