2017-10-08 35 views
-2

我有一个方法需要用/ n ASCII字符分隔的多行字符串。参数可以是单引号/双引号字符串文字。检查一个字符串是单引号还是双引号,并从中转义ASCII字符

例如,

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

'This is/n a multiline/n string'.lines => ["This is/n a multiline/n string"] 

我需要通过/ N字符串分隔。该字符串可以作为单引号或双引号传递。

我该如何做到这一点?

+0

什么是“/ n的ASCII字符”? – sawa

+0

我需要一个可以工作的解决方案。 '这是/ n一个多行/ n字符串'.split('/ n')将解决这个目的,但它会失败,因为“这是/ n多行/ n字符串”.split('/ n')。 – user122121

+0

不知道你在问什么。 – sawa

回答

1

你可以只使用split用正则表达式匹配两者(换行控制字符"\n"和字符串'\n'),而不是lines

"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"] 
+0

只是一个简单的问题,如何区分单引号字符串和双引号字符串,因为它们都属于同一个“String”类?谢谢你的回答! – user122121

+1

这不是问题。两者都只是弦乐,它们与阶级观点没有什么不同。不同之处在于''\ n“'是一个控制字符,但'\ n''是两个字符''''和''n''。你可能想问如何找出一个字符串是否包含控制字符?但是这仍然不能解决你的问题,因为在你的例子中可能有一个包含两者的字符串。因此,只处理这两种情况。 – spickermann

相关问题