在Ruby中,如何从上面的行中删除换行符?

在Ruby中,如何从上面的行中删除换行符?,ruby,Ruby,我有一个字符串,只要一行超过69个字符,它就会被拆分。为了处理它,我想将它恢复到预拆分的状态。分割行始终以第二行和后续行上的正斜杠字符开头,需要保留该字符。有没有一个好的Ruby方法可以做到这一点 # Split version GTSS/230028GG/JUL15/LL:123456X3-0051234G4/DES/000G/57NM/57NM/095T /002GTS////gts # Required output GTSS/230028GG/JUL15/LL:123456X3-005

我有一个字符串,只要一行超过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

我会使用
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"

您还可以使用
lstrip
删除左侧的所有空白(空格、换行符…):

example.lines.each_with_index do |line, index|
  if line.match(/^\/.+$/)
    line.lstrip
  end
end

.
strip
将删除所有空白(空格、换行符…)整个字符串

另一种方式(但我更喜欢@spickermann的答案):


你能举一个3行输入(总共6行)的例子吗。您需要在每对行和输出上进行正则表达式匹配,而不需要额外的回车符。如果您用不同的措辞来回答这个问题,并且可以说,更准确地说:“如何用正斜杠替换每个换行符后面的正斜杠?”
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"