Swift提供哪些工具来仅删除不在双引号内的空格? [“Alexa”,“Siri”,“Thomas Marcel”]应该转变为[“Alexa”,“Siri”,“Thomas Marcel”]。我知道您可以使用“replacementOccurrences”,但这会删除引号内的空格。
感谢您的帮助!
编辑:感谢我发现的评论,我只需要json序列化!
WHERE (name1 || ' ' || name2) ~ 'Emily|Jack|James|Chloe'
答案 0 :(得分:1)
首先,这不是一个正则表达式问题,根据评论应该有一个更好的解决方案使用json序列化。尽管如此,正如正则表达式被标记,因此以下解决方案是检查问题是否可以用正则表达式方式解决...
你可以试试这个:
\s(?=(([^\"]*\"[^\"]*){2})*$)
并替换为""
空
请记住,如果你的每个字符串都太大,可能会导致灾难性的回溯或超时......所以,如果你必须只通过regex replace
这样做,那么我认为你可以遵循这种方法......这样做时,每个行都单独应用正则表达式,而不是一次提供完整的一行。
答案 1 :(得分:1)
让JSON为你完成工作可能是一个更好的计划,但是,为了好玩,你可以做这样的事情:
var line = "[\"Alexa\", \"Siri\", \"Thomas Marcel\"]"
line = line.components(separatedBy:"\"")
.enumerated()
.map{ ($0 % 2 == 1) ? $1 : $1.replacingOccurrences(of: " ", with: "") }
.joined(separator: "\"")
// line will contain: ["Alexa","Siri","Thomas Marcel"]