我有一个脚本,用于分析大型文本文件,提取某些值(使用line.split),并将它们存储在文本文件中。当八进制值保存到文件时,我遇到问题时无法解释。红宝石不会逃脱put的投入
当我手动指定oct
的string
字符,它工作正常:
test = "\320\232\320\250\320\220"
puts test
但是,如果我得到上面使用title = line.split('=')[1]
字符串,字符串值是相同的,但是当我试图puts
,它只是重新声明整个字符串(包括引号)
我在做什么错?
我不确定'split'来自哪里。你是否试图解析你的实际Ruby源代码?在这种情况下,你需要做一些事情来解释转义序列。一个微不足道(但不太理想)的方法是评估它,但这取决于你的目标。 – 2013-05-04 03:16:09
我从我正在搜索的大文本文件中解析出一个字符串。我对Ruby非常陌生(如你所见)。有时我收集的值将包括八位字符代码,有时可能完全在他们之外。我如何使用eval? – user2348854 2013-05-04 03:22:21
只有当您的目标是评估Ruby表达式时,'eval'才适用。如果这些只是具有转义序列的不可信的字符串,则需要一种可以避开它们的方法。 PHP有一些内置的;看起来您需要在Ruby中编写或查找一个支持您的字符串可能包含的任何转义序列的文件。 – 2013-05-04 03:32:38