如何使用Ruby';s gsub功能,用于替换过多的'\n';一串
我有这个字符串:如何使用Ruby';s gsub功能,用于替换过多的'\n';一串,ruby,regex,replace,gsub,Ruby,Regex,Replace,Gsub,我有这个字符串: string = "SEGUNDA A SEXTA\n05:24 \n05:48\n06:12\n06:36\n07:00\n07:24\n07:48\n\n08:12 \n08:36\n09:00\n09:24\n09:48\n10:12\n10:36\n11:00 \n11:24\n11:48\n12:12\n12:36\n13:00\n13:24\n13:48 \n14:12\n14:36\n15:00\n15:24\n15:48\n16:12\n16:36 \n17:0
string = "SEGUNDA A SEXTA\n05:24 \n05:48\n06:12\n06:36\n07:00\n07:24\n07:48\n\n08:12 \n08:36\n09:00\n09:24\n09:48\n10:12\n10:36\n11:00 \n11:24\n11:48\n12:12\n12:36\n13:00\n13:24\n13:48 \n14:12\n14:36\n15:00\n15:24\n15:48\n16:12\n16:36 \n17:00\n17:24\n17:48\n18:12\n18:36\n19:00\n19:48 \n20:36\n21:24\n22:26\n23:15\n00:00\n"
我想将所有出现的\n\n
替换为一个\n
,如果可能的话,我还想删除数字和换行符\n
之间的所有“
(空格)
我正在努力做到:
string.gsub(/\n\n/, '\n')
但是它正在用\\n
有人能帮我吗?我想你在找:
string.gsub( / *\n+/, "\n" )
这将搜索零个或多个空格,后跟一个或多个换行符,并用一个换行符替换匹配项。真正的原因是单引号的sting不会转义特殊字符(如\n)
string.gsub(/\n/,'\n')
它用两个字符“\”和“n”替换单个字符\n
您可以通过打印字符串来查看差异:
[302] pry(main)> puts '\n'
\n
=> nil
[303] pry(main)> puts "\n"
=> nil
[304] pry(main)> string = '\n'
=> "\\n"
[305] pry(main)> string = "\n"
=> "\n"
用双引号代替单引号。你可以让它更简洁,比如:
string.gsub(/\n{2}/,“\n”)
。删除数字之间的空格?我不敢回答这个问题,但是:string.gsub(/(?@squiguy)-从技术上讲,这少了一个字符。单引号的sting不会转义特殊字符是不真实的,它会逃避一切。因此“\n”相当于“\\n”。