Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从ruby行中删除多余的和不允许的字符_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 从ruby行中删除多余的和不允许的字符

Ruby on rails 从ruby行中删除多余的和不允许的字符,ruby-on-rails,ruby,Ruby On Rails,Ruby,有一行:ggSuQNs6TxOTuQDd0j+4sA==$QO/mq2jwfe3jgsggogigmlg==。我需要 将其转换为ggsuqns6txotuqdd0j4saqomq2jwfe3jgsgoigmlg(仅限字母和数字)。然后将其修剪为13个字符ggSuQNs6TxOTu并将前半个数字粘贴在3个符号后,将后半个数字粘贴在9个符号后。例如,数字为3243,字符串为ggSuQNs6TxOTu。haveggS32uQNs436TxOTu之后 我的英语不好),我希望你能理解我。以下是我的尝试,从

有一行:
ggSuQNs6TxOTuQDd0j+4sA==$QO/mq2jwfe3jgsggogigmlg==
。我需要 将其转换为
ggsuqns6txotuqdd0j4saqomq2jwfe3jgsgoigmlg
(仅限字母和数字)。然后将其修剪为13个字符
ggSuQNs6TxOTu
并将前半个数字粘贴在3个符号后,将后半个数字粘贴在9个符号后。例如,数字为3243,字符串为ggSuQNs6TxOTu。have
ggS32uQNs436TxOTu之后


我的英语不好),我希望你能理解我。

以下是我的尝试,从你的问题中我能理解(让我把你的每句话都讲一遍)

您的字符串:

s = "ggSuQNs6TxOTuQDd0j+4sA==$QO/Mq2jwfe3jgsGGoIGmlg==" 
步骤1

我需要把它转换成 “GGSUQNS6TXOTUQDD0J4SAQOMQ2JWFE3JGSGOIGMLG”(仅字母和 数字)

仅限字符和数字:

 > transform_string = s.tr('^A-Za-z0-9', '')
 #=> "ggSuQNs6TxOTuQDd0j4sAQOMq2jwfe3jgsGGoIGmlg" 
步骤-2

然后将其修剪为13个字符“ggSuQNs6TxOTu”

按如下方式获取前13个字符:

 > thirteen_chrs = transform_string[0..12]
 #=> "ggSuQNs6TxOTu" 
步骤3(来自您的示例)

步骤4

在前半位数的3个字符之后,粘贴在9之后 字符数的后半部分

以下是相同的在线代码:

> thirteen_chrs.insert(3, number.to_s.chars.each_slice(2).map(&:join).first).insert(9, number.to_s.chars.each_slice(2).map(&:join).last)
#=> "ggS3232uQ42Ns6TxOTu" 

我希望这可以帮助您:)

您是如何尝试解决它的?是的,有没有代码或从哪里开始的想法?看看regex和
gsub
string的方法,这将是一个开始。它看起来像是两个连接在一起的base64字符串。你确定要删除非单词字符并使字符串毫无意义吗?@Alex Golubenko尝试将split与正则表达式结合使用
> thirteen_chrs.insert(3, number.to_s.chars.each_slice(2).map(&:join).first).insert(9, number.to_s.chars.each_slice(2).map(&:join).last)
#=> "ggS3232uQ42Ns6TxOTu"