在Ruby中:如何在'='處分割字符串,但不在'\ ='? 實施例:紅寶石分爲'='但''不等於''='
string = "abc = def \= ghi"
--> ["abc", "def \\= ghi"]
隨着string.split( 「=」)我得到在陣列三個條目。
在Ruby中:如何在'='處分割字符串,但不在'\ ='? 實施例:紅寶石分爲'='但''不等於''='
string = "abc = def \= ghi"
--> ["abc", "def \\= ghi"]
隨着string.split( 「=」)我得到在陣列三個條目。
您可以分割上
(?<!\)=
(?<=...)
是負回顧後。
只需使用負向lookbehind檢查=
標誌之前是否沒有\
。
string = "abc = def \\= ghi"
print string.split(/(?<!\\)=/).flatten
輸出:
["abc ", " def \\= ghi"]
'.flatten'在這裏不需要,'.split'的結果已經是一個扁平的數組。 –
@DaniëlKnippers謝謝。你是對的。 –
'「ABC =高清\ = ghi「'與'」abc = def = ghi「'相同。因此,沒有什麼區分'='和'\ =',你所問的是不可能的。 – sawa
除了@ sawa的觀點之外,如果你希望字符串和所需數組的第二個元素都包含'\\ =',而不是'\ =',請編輯你的問題以進行更正。如果您選擇讓問題保持原樣,那麼預計會大量減少。 –