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。haveggS32uQNs436TxOTu之后
我的英语不好),我希望你能理解我。以下是我的尝试,从你的问题中我能理解(让我把你的每句话都讲一遍)
您的字符串:
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"