Ich habe eine Zelle in einer Google-Tabelle mit dem Text "s/* │ */\ t/g".Google Spreadsheet getValue ([Zelle mit t]) gibt keinen Tabulator zurück
Ich verwende den Code
function minimalExample(){
var text = "a │ b"
var pattern = SpreadsheetApp.getActiveSheet().getRange('B3').getValue() // cell contains "s/ *│ */\t/g"
var regexSplitter = /s\/(.*)\/(.*)\/(\w+)/; // pattern to split sed line into search/replace/modifier
var patternParts = pattern.match(regexSplitter); // list with search [1], replace [2], modifier [3]
text = text.replace(new RegExp(patternParts[1], patternParts[3]),patternParts[2]);
Logger.log(text);
return true;
}
Die beabsichtigte Ausgabe würde "a b" sein, aber ich erhalte "eine \ tb".
Wie kann ich dieses Verhalten ändern?
Warum sollte die beabsichtigte Ausgabe 'a b' sein? Du bekommst 'a \ tb', weil * genau das ist, was in die Zelle * geschrieben wird. Die Dinge, die einen Tabulator aus einem "\ t" ergeben, den Sie in Ihren Code einfügen, ist im Grunde der Parser, der Ihren Code liest. Streicher, die von anderswo geladen werden, werden sich nicht magisch verwandeln. Wenn Sie alle '\ t' in der Zeichenfolge in Tabulatorzeichen umwandeln möchten, müssen Sie' .replace (/ \\ t/g, "\ t") 'darauf setzen. – CherryDT
Dann wäre "a b" die _desired_ Ausgabe :) – Nico