将单词换成短划线而不是空格

时间:2014-09-16 14:22:55

标签: ruby regex

我找到了很多一个衬里来包装一些文字来完成单词,比如

text.scan(/\S.{0,#{width}}\S(?=\s|$)|\S+/)

是否有一种简单的方法可以将包含结尾的单词 - 而不是空格? 感谢

2 个答案:

答案 0 :(得分:0)

\S.{0,#{width}}\S(?=\-|$)|\S+

您所要做的就是用\ -

替换\ s

答案 1 :(得分:0)

感谢您提供不同的答案,我明白正则表达式更好,因为我注意到它是一个小s,而不是一个大的:)。 以下是我考虑过的内容:

text.gsub(/(.{1,#{width}})(\-+)|(.{1,#{width}})/, "\\1\\2\\3\|").split("|")

我用过|分裂是因为我知道原文中不会有任何内容。完美的工作:)