我有一个字符串,只要一行超过69个字符,就会被拆分。为了处理它,我想将它恢复到预先拆分的方式。分割线始终以第二行和后续行上的正斜杠字符开头,需要保留。有没有一个很好的Ruby方法来做到这一点?
# Split version
GTSS/230028GG/JUL15/LL:123456X3-0051234G4/DES/000G/57NM/57NM/095T
/002GTS////gts
# Required output
GTSS/230028GG/JUL15/LL:123456X3-0051234G4/DES/000G/57NM/57NM/095T/002GTS////gts
我很高兴匹配以正斜杠开头的行。我不知道的是如何从上一行的末尾删除换行符。
example.lines.each_with_index do |line, index|
if line.match(/^\/.+$/)
# what goes here?
end
end
答案 0 :(得分:7)
我会使用gsub
:
string = "GTSS/230028GG/JUL15/LL:123456X3-0051234G4/DES/000G/57NM/57NM/095T\n/002GTS////gts"
string.gsub("\n/", '/')
#=> "GTSS/230028GG/JUL15/LL:123456X3-0051234G4/DES/000G/57NM/57NM/095T/002GTS////gts"
答案 1 :(得分:0)
你也可以使用lstrip
从左边删除所有空格(空格,换行符......):
example.lines.each_with_index do |line, index|
if line.match(/^\/.+$/)
line.lstrip
end
end
答案 2 :(得分:0)
。strip
将删除所有空格(空格,换行符......)整个字符串
答案 3 :(得分:0)
另一种方式(但我喜欢@ spickermann的答案更好):
str = "GTSS/230028GG/JUL15/LL:123456X3-0051234G4/DES/000G/57NM/57NM/095T
/002GTS////gts"
str.split("\n/").join("/")
#=> "GTSS/230028GG/JUL15/LL:123456X3-0051234G4/DES/000G/57NM/57NM/095T/002GTS////gts"