gpt4 book ai didi

Swift 正则表达式将字符串拆分为具有长度的子字符串数组

转载 作者:行者123 更新时间:2023-11-28 10:09:35 24 4
gpt4 key购买 nike

如何将输入的字符串拆分为字符串数组?

子字符串将小于或等于固定长度(例如:总共 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com