Ruby - 在n个字符后分割字符串,但如果在单词的中间,则不要拆分

时间:2017-07-25 08:27:28

标签: ruby-on-rails ruby regex

我正在尝试编写一个正则表达式,它将在每160个字符后插入换行符,但如果第160个字符位于单词的中间,则到达单词的结尾,然后剪切。

有什么想法吗?

我试过这个,但它还没有奏效。还在努力。

string.gsub(/(.{160})(?=.)/, '\n')

这适用于Javascript,只是不太确定如何让它在RoR中运行

string.replace(/(.{1,160})(?:\n|$| )/g, "$1 \n")

2 个答案:

答案 0 :(得分:1)

你可以试试这个

string.gsub(/(.{160}\S*)\s*/, "\\1\n")

答案 1 :(得分:0)

你可以试试这个:

regexp = /(\b.{1,160}[\S]*)\s/
res = text.scan(regexp).flatten.join("\n")