Ruby 检查字符串是否为单引号/双引号文字,并从中转义ASCII字符

Ruby 检查字符串是否为单引号/双引号文字,并从中转义ASCII字符,ruby,string,Ruby,String,我有一个方法,它采用由/n ASCII字符分隔的多行字符串。参数可以是单引号/双引号字符串文字 比如说, "This is/n a multiline/n string".lines => ["This is", "a multiline", "string"] 但是 我需要用/n来分隔字符串。字符串可以作为单引号或双引号传递 如何实现这一点?您可以使用split和同时匹配两者的regexp(换行控制字符“\n”和字符串“\n”)而不是行: "This is\n a multiline\

我有一个方法,它采用由/n ASCII字符分隔的多行字符串。参数可以是单引号/双引号字符串文字

比如说,

"This is/n a multiline/n string".lines => ["This is", "a multiline", "string"]
但是

我需要用/n来分隔字符串。字符串可以作为单引号或双引号传递


如何实现这一点?

您可以使用
split
和同时匹配两者的regexp(换行控制字符
“\n”
和字符串
“\n”
)而不是

"This is\n a multiline\n string".split(/\n|\\n/)
#=> ["This is", " a multiline", " string"]
'This is\n a multiline\n string'.split(/\n|\\n/)
#=> ["This is", " a multiline", " string"]

什么是“/n ASCII字符”?我需要一个有效的解决方案这是/n多行/n字符串。拆分('/n')可以解决问题,但对于“这是/n多行/n字符串”将失败。拆分('/n')。不确定您在问什么。只是一个简单的问题,如何区分单引号字符串和双引号字符串,因为它们都属于同一个“字符串”类?谢谢你的回答!这不是问题所在。两者都只是字符串,它们与类的观点没有什么不同。区别在于
“\n”
是一个控制字符,而
'\n'
是两个字符
'\'
'n'
。您可能想问如何确定字符串是否包含控制字符?但这仍然不能解决您的问题,因为在您的示例中,可能有一个字符串同时包含这两个元素。所以这两种情况都要处理。
"This is\n a multiline\n string".split(/\n|\\n/)
#=> ["This is", " a multiline", " string"]
'This is\n a multiline\n string'.split(/\n|\\n/)
#=> ["This is", " a multiline", " string"]