Ruby - 如何摆脱逃脱角色和" \ n"将字符串转换为哈希值时?

时间:2017-03-22 10:36:45

标签: ruby string

在Ruby中,我试图将字符串转换为哈希值。它出现了逃避字符和" \ n"在字符串中。

例如:

<body>

<div id="left">
<p class="Title"> <h2>MARIO PUZO'S</h2> 
<h1 id="godfather">THE GODFATHER</h1> 
<h1 id="shawshank" style="display: none;">Shawshank Redemption</h1> 

<h4>by Mario Puzo and Francis Ford Coppola</h4> 

TRANSCRIPT</p>
<div class="Txt2">


<select id="1">
<option value="1">desk</option>
<option value="2">dark, empty room(shawshank redemption)</option>
<option value ="3">SOCIAL ROOM(fight club)</option></select>
</div></body>

将结果打印为

hashex = { keyex: 'example "test" line 1
  line 2 "test2"'}
puts hashex

我需要将结果作为

{:keyex=>"example \"test\" line 1\n  line 2 \"test2\""}

保留换行符(不是&#39; \ n&#39;)和&#34;&#34;。请帮助。

1 个答案:

答案 0 :(得分:0)

注意

{:keyex=>"example \"test\" line 1\n  line 2 \"test2\""}

就是Ruby代表哈希的方式。它与100%的对象相同:

{ keyex: 'example "test" line 1
  line 2 "test2"'}

即使它可能看起来不同。

代码

您可以使用换行符替换"\\n" inspect\"替换""替换'

hashex = { keyex: 'example "test" line 1
     line 2 "test2"'}

puts hashex.inspect.gsub("\\n", "\n").gsub('"', "'").gsub("\\'",'"')
# {:keyex=>'example "test" line 1
#      line 2 "test2"'}