我想要将一个较长的字符串每四个字符进行分割。我是这样尝试实现的:
big_string.split(/..../)
返回的是一个空数组。就我所知,这应该有效。当我将其插入 在线 Ruby 正则表达式测试 时,它甚至可以工作。
我想要将一个较长的字符串每四个字符进行分割。我是这样尝试实现的:
big_string.split(/..../)
返回的是一个空数组。就我所知,这应该有效。当我将其插入 在线 Ruby 正则表达式测试 时,它甚至可以工作。
尝试使用 scan
替代:
$ irb
>> "abcd1234beefcake".scan(/..../)
=> ["abcd", "1234", "beef", "cake"]
或者>> "abcd1234beefcake".scan(/.{4}/)
=> ["abcd", "1234", "beef", "cake"]
如果字符数量不能被4整除,您还可以获取剩余的字符:
>> "abcd1234beefcakexyz".scan(/.{1,4}/)
=> ["abcd", "1234", "beef", "cake", "xyz"]
({1,4}
会贪婪地匹配1到4个字符)
嗯,我不知道Rubular在那里做什么以及为什么 - 但是
big_string.split(/..../)
翻译成:
将字符串在每个4个字符序列处分割
这应该正确地得到类似这样的结果
["", "", "", "abc"]
.
和 )
上加转义符?这不是有效的 Ruby 语法。 - Volte糟糕。
str = 'asdfasdfasdf'
c = 0
out = []
inum = 4
(str.length / inum).round.times do |s|
out.push(str[c, round(s * inum)])
c += inum
end