2016-07-20 28 views
0

我有一個字符串數組中的替換字符串內的雙引號:陣列中的

["foo","bar","foo"bar"baz"] 

我使用eval方法,形成以該字符串數組,但是內部的雙引號不被轉義:

eval('["foo","bar","foo"bar"baz"]') # => SyntaxError 

有沒有辦法只轉義數組中的元素?

+0

您是否試圖爲此編寫模式?請分享你的嘗試。 –

+0

你能告訴,你想得到什麼結果嗎? –

+0

@WiktorStribiżew我正在嘗試這個https://repl.it/CdvP/1 –

回答

3

我想你可以嘗試像

eval('["foo","bar","foo"bar"baz"]'.gsub(/(\w)\"(\w)/, '\1\"\2')) 

,如果我得到了你意味着

+4

或'.gsub(/ \ b「\ b /,'\'')' –

+0

是的,這是更優雅的解決方案 –

+0

我認爲它不會解決所有的情況,不幸的是。 「[」foo「,」foo「b ar」baz「,」「」「」「」「」]「''''? –

1

這可能會爲所有可能的變體工作。這將修復所有報價,除了在逗號和括號附近出現外

.gsub(/(?<!\,)(?<!\[)(?<!\])\"(?!\,)(?!\[)(?!\])/, '\"')