回答
在你的字符串,你有文字字符 “\” 和“r”,还是你有转义序列“\ r”?
如果你有串foo\r\fbar
,那么你的字符串是8个字符长:
"foo\r\fbar".split(//).map(&:ord)
=> [102, 111, 111, 13, 12, 98, 97, 114]
要删除什么\r
和\f
字符,或字符代码13和12.您不能删除\f
中的前导斜杠,因为\f
只是一个字符。如果您遇到这种情况,你可以使用:
"foo\r\fbar".gsub(/\r\f/, "")
=> "foobar"
但是,如果你有字面顺序foo\\r\\fbar
:
"foo\\r\\fbar".split(//).map(&:ord)
=> [102, 111, 111, 92, 114, 92, 102, 98, 97, 114]
然后你可以的“F”之前删除\r
和斜线:
"foo\\r\\fbar".gsub(/\\r\\/, "")
=> "foofbar"
如果您有序列foo\r\\fbar
:
"foo\r\\fbar".split(//).map(&:ord)
=> [102, 111, 111, 13, 92, 102, 98, 97, 114]
那么你同样可以在“F”之前删除\r
和斜线:
"foo\r\\fbar".gsub(/\r\\/, "")
=> "foofbar"
使用此:
mystring.gsub(/\r\\/,"")
did not work '2.0.0:060> str.gsub(/ \ r \\ /,“”)' '=>“asdasd \ r \ fsdads”' – 2013-03-16 23:02:44
Hmm from the output you show that string that string不是你说的。你显示的内容意味着字符串有'\ r',后面跟着'\ a',这是一些奇怪的转义序列。如果后面跟着\,你会得到:'asdasd \ r \\ asdads' – 2013-03-16 23:12:52
正如你所知道的,这是我们很难弄清楚什么字你确实需要删除,因为你是自相矛盾的。在标题中,你说"\n\"
,在问题中你说"\r\"
。无论哪种方式,我都会这样做,以便准确找出我需要搜索的内容。
与有问题的字符串开始:
mystring = "\n\\"
我会使用的方法bytes
有红宝石告诉我,我应该用什么:
mystring = "\n\\" # => "\n\\"
mystring.bytes.map{ |b| '%02x' % b } # => ["0a", "5c"]
mystring.tr("\x0a\x5c", '') # => ""
mystring.gsub(/\x0a\x5c/, '') # => ""
mystring = "\r\\" # => "\r\\"
mystring.bytes.map{ |b| '%02x' % b } # => ["0d", "5c"]
mystring.tr("\x0d\x5c", '') # => ""
mystring.gsub(/\x0d\x5c/, '') # => ""
与转义字符处理会很痛苦在任何编程语言中,但如果我查看组成字符的确切字节,我不会出错,只要我处理ASCII。如果它是另一个字符集,我将要使用的方法chars
,并适当地调整自己的模式:
mystring = "\n\\"
mystring.chars.to_a # => ["\n", "\\"]
mystring.gsub(/\n\\/, '') # => ""
mystring.tr("\n\\", '') # => ""
mystring = "\r\\"
mystring.chars.to_a # => ["\r", "\\"]
mystring.tr("\r\\", '') # => ""
mystring.gsub(/\r\\/, '') # => ""
- 1. 如何从Ruby字符串中删除字符串“\ n”?
- 2. 如何从iphone中的字符串中删除删除/ n/t
- 3. 删除\ XA0,\ n,从Python字符串
- 4. 从字符串中删除字符“\ n”,读
- 5. Ruby,从字符串中删除最后N个字符?
- 6. 从字符串中删除“
- 7. C从字符串中删除字符
- 8. 从c字符串中删除字符
- 9. 从字符串中删除字符串
- 10. 从字符串中删除字符串
- 11. 从字符串中删除Unicode字符
- 12. 从字符串中删除
- 13. 从字符串中删除()
- 14. 从字符串中删除“@”
- 15. 如何从json字符串中删除多个换行符(\ n)?
- 16. 从字符串末尾删除n个字符
- 17. 从字符串的开头删除n个字符
- 18. C++从字符串中删除字符
- 19. 从字符串中删除字符
- 20. Python:从字符串中删除字符
- 21. 从字符串中删除字符
- 22. datagridview从字符串中删除'&'字符
- 23. jQuery从字符串中删除' - '字符
- 24. Fortran:从字符串中删除字符
- 25. VB.NET - 从字符串中删除字符
- 26. 从字符串中删除字符?
- 27. 从C字符串中删除字符
- 28. 从Java中的字符串中删除n个点(。)
- 29. 从字符串中删除\\ U00a0 - iOS
- 30. 如何从一个字符串中删除\ r \ n和\在Perl
'\ r \'实际上是两个字符; '\ r'是引用字符#13的转义码。如果你的意思是“删除文字\ r和文字\”,那么这将是3个字符。你能澄清你的意思吗? – 2013-03-16 23:28:26