如何将输入的字符串拆分为字符串数组?
子字符串将小于或等于固定长度(例如:总共 10 个字符。)
子字符串只会在空格处被分割。
Ex: The quick brown fox jumps over the lazy dog 应该拆分成数组 ["The quick","brown fox","jumps over","the lazy", "dog"]
=> 数组中的每一项小于或等于 10 个字符并以空格分隔。
最佳答案
您可以使用 "(.{1,10})(\\s+|$)"
,匹配 1 到 10 个字符,以空格或行尾结束。
let string = "The quick brown fox jumps over the lazy dog"
let regex = try! NSRegularExpression(pattern: "(.{1,10})(\\s+|$)")
let range = NSRange(string.startIndex..., in: string)
let results = regex.matches(in: string, options: .anchored, range: range)
.map { match -> Substring in
let range = Range(match.range(at: 1), in: string)!
return string[range]
}
产量:
["The quick", "brown fox", "jumps over", "the lazy", "dog"]
与所有正则表达式答案一样,给猫剥皮的方法有很多,但这似乎是一种简单的方法。
不过,这确实回避了如果遇到超过 10 个字符的单词该怎么办的问题。例如,如果您想允许这些长单词而不将它们拆分,您可以使用 "(.{1,10}|\\S{11,})(\\s+|$)"
.
关于Swift 正则表达式将字符串拆分为具有长度的子字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49702942/