the*_*sis 14 ruby ruby-on-rails
例如,我有一些随机字符串:
str = "26723462345"
Run Code Online (Sandbox Code Playgroud)
我希望在第6个字符之后将它分成两部分.怎么做到这一点?
谢谢!
Yul*_*ule 33
这应该做到这一点
[str[0..5], str[6..-1]]
Run Code Online (Sandbox Code Playgroud)
要么
[str.slice(0..5), str.slice(6..-1)]
Run Code Online (Sandbox Code Playgroud)
真的应该查看http://corelib.rubyonrails.org/classes/String.html
Jor*_*ing 12
这是选项.但请注意,它会改变原始字符串:
part1, part2 = str.slice!(0...6), str
p part1 # => "267234"
p part2 # => "62345"
p str # => "62345"
Run Code Online (Sandbox Code Playgroud)
自从我写这个答案以来的几年里,我已经同意评论者抱怨它可能过于聪明.以下是一些不会改变原始字符串的其他选项.
警告:这个只适用于ASCII字符.
str.unpack("a6a*")
# => ["267234", "62345"]
Run Code Online (Sandbox Code Playgroud)
下一个使用magic变量$',它在最近的Regexp匹配后返回字符串的一部分:
part1, part2 = str[/.{6}/], $'
p [part1, part2]
# => ["267234", "62345"]
Run Code Online (Sandbox Code Playgroud)
最后一个使用lookbehind将字符串拆分到正确的位置,而不返回任何额外的部分:
p str.split(/(?<=^.{6})/)
# => ["267234", "62345"]
Run Code Online (Sandbox Code Playgroud)