gpt4 book ai didi

ruby - 拆分长字符串而不打断单词

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:26 25 4
gpt4 key购买 nike

我必须显示多个长字符串(具有不同的长度),但我只能显示需要它们在 275 到 295 个字符之间的字符串 block 。

所以如果我有一个 3000 字的字符串,它会显示在大约 10 个部分。

我正在寻找一种方法来找到下一个空白。例如:

if str[275] != " "
# find next blank
p str[0..next_blank]
else
p str[0..275]
end

我想在第 275-295 个字符范围内找到下一个空白的索引,但我找不到在 Ruby 中如何做。

任何帮助将不胜感激!

最佳答案

Rails 有一个方法 word_wrap它使用一个简单的正则表达式:

str = 'Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'

puts str.gsub(/(.{1,80})(\s+|$)/, "\\1\n")

输出:

Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor
incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute
iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
officia deserunt mollit anim id est laborum.

正则表达式匹配(并捕获)最多 80 个字符 (.{1,80}),后跟空格或行尾 (\s+|$)。

关于ruby - 拆分长字符串而不打断单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333335/

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