gpt4 book ai didi

ruby - 将字符串拆分为 2 个不同数量的字符,跳过非字母数字

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:35 25 4
gpt4 key购买 nike

我有一个像这样的字符串:

hn$8m3kj4.23hs@8;

我需要按如下方式拆分它:第一个条目应该是一个字符长度,第二个条目应该是 2 个字符,第三个条目是一个字符,第四个 - 2 个字符,依此类推。

然后用分号将一个字符与两个字符条目连接起来 :

如果末尾的某些字符仍未配对,则也应显示它们。

跳过所有非字母数字字符很重要。

所以最后的字符串应该是:

h:n8 m:3k j:42 3:hs 8:

看,8 没有 2 个字符对,但无论如何都会显示。

我已经尝试过循环,但我得到了巨大的代码。还尝试了正则表达式,但它被错误的字符数分割。

最佳答案

你可以试试这个:

 s = "hn$8m3kj4.23hs@8;"

s.gsub(/\W/, '').scan(/(.)(..)?/).map { |i| i.join ':' }.join ' '
=> "h:n8 m:3k j:42 3:hs 8:"

虽然这不会跳过下划线。

如果你也需要跳过它们,使用这个:

s = "hn$8m3k_j4.23hs@8;_"

s.gsub(/\W|_/, '').scan(/(.)(..)?/).map { |i| i.join ':' }.join ' '
=> "h:n8 m:3k j:42 3:hs 8:"

参见live demo here

关于ruby - 将字符串拆分为 2 个不同数量的字符,跳过非字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13126490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com