让string_a = "I'm a string but this aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa is long."
如何检测aaaa...aaa
(没有空格的部分很长)部分并将其截断以使结果看起来像(字符串的其余部分应该看起来相同):
puts string_a # => "I'm a string but this aaa....aaa is long."
我使用这种方法截断:
def truncate_string(string_x)
splits = string_x.scan(/(.{0,9})(.*?)(.{0,9}$)/)[0]
splits[1] = "..." if splits[1].length > 3
splits.join
end
所以运行:
puts truncate_string("I'm a very long long long string") # => "I'm a ver...ng string"
问题是检测'aaaa...aaaa'
并应用truncate_string
到它。
解决方案的第一部分?使用正则表达式检测比 N 长的字符串?