2

嗨,我需要像这样创建字符串:

drawtext="fontfile=/Users/stpn/Documents/Video_Experiments/fonts/Trebuchet_MS.ttf:text='content':fontsize=100:fontcolor=red:y=h/2"

我想做类似的事情

str = Q%[drawtext="fontfile=/Users/stpn/Documents/Video_Experiments/fonts/Trebuchet_MS.ttf:text='content':fontsize=100:fontcolor=red:y=h/2"]

我得到这个:

=> "drawtext=\"fontfile=/Users/stpn/Documents/Video_Experiments/fonts/Trebuchet_MS.ttf:text='content':fontsize=100:fontcolor=red:y=h/2\"" 

等号后的转义字符 drawtext=" 是我想要摆脱的.. 如何实现?

该字符串将在命令行参数中使用。

4

1 回答 1

4

像许多语言一样,Ruby 需要一种分隔引号和封闭引号的方法。

您看到的是转义字符,它是一种表示文字引用而不是句法引用的方式:

foo = 'test="test"'
# => "test=\"test\""

转义字符之所以存在,是因为在检查字符串时默认使用双引号。当然,它在内部存储为单个字符。您可能还会在其他情况下看到这些,例如 CR+LF 分隔的文件行:

"example_line\r\n"

这里的\rand\n对应于回车符和换行符。在 ANSI C 中定义的这些字符中的一些已沿用到包括 Ruby 和 JavaScript 在内的许多语言中。

当您输出字符串时,不会显示这些转义字符:

puts foo
test="test"
于 2012-06-25T18:35:58.010 回答