Swift:拆分以逗号分隔的字符串,但如果逗号用单引号

时间:2017-12-05 18:17:49

标签: swift xml string

我的XML文件在单引号之间编码字符串。数组元素以逗号分隔。

  

'你好','世界'

通常,提取逗号分隔值很容易:

let result = myString.split{ $0 == "," }.map(String.init)

问题在于我不能肆意分裂逗号:如果逗号用单引号括起来,那么它是 text ,否则它是一个数组元素分隔符:

  

'你好','世界','你好,世界'

应该产生:

["Hello", "World", "Hello, World"]

注意两件事:

  1. 空单引号是一个无法丢弃的空字符串(它是数组中的元素)
  2. 我无法保证元素之间的空白;用户可能已经篡改了文件。
  3.   

    '你好','世界','你好,世界',''

    应该产生:

    ["Hello", "World", "Hello, World", ""]
    

    我需要一些方法来区分位于单引号之外的逗号分隔值:','更好的方法可能是在单引号之间保留任何内容,但我不知道该怎么做此

1 个答案:

答案 0 :(得分:1)

如何用单引号分隔字符串,然后删除包含单个逗号和空格的元素?

请注意,您应该删除结果的第一个/最后一个元素,因为输入以单引号开头和结尾,并在分离后生成一个空元素。

var result = myString.components(separatedBy: "'").filter { 
    $0.trimmingCharacters(in: .whitespaces) != ","
}

result.removeLast()
result.removeFirst()