【发布时间】:2012-08-31 18:05:41
【问题描述】:
让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 长的字符串?
【问题讨论】:
-
您到底想检测什么?任何长序列的重复字符?
-
检测一个大于等于N的字符串。N可以是任意整数。
-
您的意思是两个空格之间的字符串或字符序列?要检测一个字符串是否超过 N 个字符,您只需要检查它的大小,我认为这不是您的问题...
-
对不起,我没有提到要检测的字符串应该没有空格。所以它是两个空格之间的一系列字符。
标签: ruby-on-rails ruby truncate