Прежде всего, запуск d.replace(/\s/g, '')
удалит все пробелы и из строки d
, и поэтому я предполагаю, что вы имели в виду d.replace(/ /g, '')
.
Кажется, что файл имеет 3 последовательных пробела после каждого слова, что означает, что первый replace
удалит только один пробел. Чтобы исправить это, вы можете объединить первый и второй replace
с помощью отрицания:
const url = 'https://raw.githubusercontent.com/dwyl/english-words/master/words_alpha.txt';
fetch(url)
.then(d => d.text())
.then(d => d.replace(/[^\n]\s/g, ''))
.then(d => d.replace(/\s/g, "', '"))
.then(console.log);
//=> Should print out the words in the expected format.
Причина, почему приведенный выше код объясняется тем, что первый replace
удаляет все пробелы (которые не являются символами новой строки), а второй заменяет каждый символ новой строки на ', '
.
Один из способов сделать это более читабельным и надежным - использовать .split
вместо .replace
:
const url = 'https://raw.githubusercontent.com/dwyl/english-words/master/words_alpha.txt';
fetch(url)
.then(d => d.text())
.then(d => d.split(/\s+/g))
.then(d => d.map(word => `'${word}'`))
.then(d => d.join(', '))
.then(console.log);
//=> Should still print out the words correctly.
'
перед ним, а последнее слово имеет закрывающее '
после него).
Можно использовать `t
для символа табуляции в двойной заключенной в кавычки строке. Можно также упростить вышеупомянутое до:
"$($fields[0]) $($fields[1]) $($fields[2]) $($fields[3]) $($fields[15]) $($fields[17])" | Add-Content $tempInputDir\testoutput.log
Присоединиться к назначенным полям вместе с вкладками:
[string]::join("`t", (0..3,15,17 | % {$fields[$_]}))