2017-10-08 36 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

相關問題