【发布时间】:2011-11-02 06:56:56
【问题描述】:
我需要在 ruby 中删除字符串开头和结尾的换行符(某种修剪)。
但只是在开头和结尾...位于字符串中间的新行必须保持不变。
谢谢!
【问题讨论】:
我需要在 ruby 中删除字符串开头和结尾的换行符(某种修剪)。
但只是在开头和结尾...位于字符串中间的新行必须保持不变。
谢谢!
【问题讨论】:
您可以使用String#strip 方法。
"\tgoodbye\r\n".strip #=> "goodbye"
【讨论】:
strip! 来“就地”修改变量,请注意,因为它返回nil,因为它不需要从开头或结尾删除任何内容字符串。
NPatel's answer的平台无关版本是:
"\nabc\ndef\n".gsub(/^#{$/}/, "").gsub(/#{$/}$/, "")
【讨论】:
如果您的意图是只去除空格,那么 strip 方法应该可以工作...但是如果您尝试专门针对新行,那么可以试试这个:
"\r\na b c d\r\ne f g\r\n".gsub(/^\r\n/, "").gsub(/\r\n$/, "")
=> "a b c d\r\ne f g"
gsub 方法将使用正则表达式来定位开始 ^ 和结束 $ 位置以替换为 ""。
注意:这里我假设你的换行符是 \r\n。这可能与平台无关。
【讨论】:
String.strip 将删除前后所有多余的空格,只留下内脏。
【讨论】:
应该这样做:
string.lstrip!.rstrip!
【讨论】:
"\n\r\sfoo\s\r\n".lstrip.rstrip.eql? "\n\r\sfoo\s\r\n".strip 返回true。