剥离在导轨中不能正常工作

时间:2018-01-27 23:05:22

标签: ruby-on-rails ruby regex strip

我有一个字符串

s = "        \r\n Displays the unique ID number assigned to the\r\nAlias Person."

我想删除这个起始空格,但它也不会删除这些引号。

我试过

s = s.strip!
s = s.gsub!('"','')

2 个答案:

答案 0 :(得分:4)

你的字符串中包含的内容是不间断的空格,如果你不在编辑器中使用任何帮助,那么差异就是不可见的:

p "        \r\n Displays the unique ID number assigned to the\r\nAlias Person."
p "        \r\n Displays the unique ID number assigned to the\r\nAlias Person."

但如果您在字符串中映射每个字符,您可以看到差异:

[32, 32, 32, 32, 32, 32, 32, 32, 13, 10, 32, ...]
[160, 160, 160, 160, 160, 160, 160, 160, 13, 10, 32, ...]

那些160是您无法替换的,您必须手动删除它们,或拒绝匹配160的那些然后再加入和转换:

string = "        \r\n Displays the unique ID number assigned to the\r\nAlias Person."
p string.chars.reject { |char| char.ord == 160 }.join
# "\r\n Displays the unique ID number assigned to the\r\nAlias Person."

答案 1 :(得分:0)

代码没有问题。如果您尝试从字符串的开头和结尾删除引号,则不会删除它。这就是ruby代表一个字符串的方式。尝试使用单引号定义一个字符串,如下所示: -

2.4.2 :005 > str = 'aaa'
 => "aaa"