Til*_*ilo 41
n = 3
str = "your long long input string or whatever"
str.split[0...n].join(' ')
=> "your long long"
str.split[0...n] # note that there are three dots, which excludes n
=> ["your", "long", "long"]
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
s = "what's the best way to truncate a ruby string to the first n words?"
n = 6
trunc = s[/(\S+\s+){#{n}}/].strip
Run Code Online (Sandbox Code Playgroud)
如果你不介意复制.
您也可以通过调整空格检测来应用Sawa的改进(希望我仍然是数学家,这将是一个定理的一个伟大名称):
trunc = s[/(\s*\S+){#{n}}/]
Run Code Online (Sandbox Code Playgroud)
如果你必须处理n
的数量大于当时的单词数量,s
你可以使用这个变体:
s[/(\S+(\s+)?){,#{n}}/].strip
Run Code Online (Sandbox Code Playgroud)