我认为这段代码可以工作,但正则表达式永远不会匹配\r\n。我在十六进制编辑器中查看了正在读取的数据,并验证了文件中是否真的存在十六进制D和十六进制A模式。
我还尝试了正则表达式/\xD\xA/m和/\x0D\x0A/m,但它们也不匹配。
这是我现在的代码:
lines2 = lines.gsub( /\r\n/m, "\n" )
if ( lines == lines2 )
print "still the same\n"
else
print "made the change\n"
end
除了其他选择之外,知道我做错了什么也是很好的(以促进我的部分学习)。:)
发布于 2008-11-13 18:38:45
通常,当我处理剥离\r或\n时,我会通过执行以下操作来查找这两种情况
lines.gsub(/\r\n?/, "\n");
我发现,根据数据的保存方式(使用的操作系统、使用的编辑器、当时Jupiter与Io的关系),回车后可能会有换行符,也可能没有。在十六进制模式下同时看到两个字符看起来确实很奇怪。希望这能有所帮助。
发布于 2016-02-26 21:07:15
如果您使用的是Rails,则有一个squish
方法
"\tgoodbye\r\n".squish => "goodbye"
"\tgood \t\r\nbye\r\n".squish => "good bye"
发布于 2012-01-17 16:00:29
modified_string = string.gsub(/\s+/, ' ').strip
https://stackoverflow.com/questions/287713
复制相似问题