У меня есть файл csv, в котором есть несколько строк, содержащих :. Мне нужно полностью удалить эти строки. Это то, что я делал до сих пор.
var array = fs.readFileSync('../list/fusion.csv').toString();
var pattern = /^\:/gm;
var best = array.replace(pattern, '');
fs.writeFile('../list/full.csv', best, function (err) {
if (err) return console.info(err);
});
Пытаюсь заменить : на пробел. Мой шаблон работает в regex101, но когда я запускаю код, ничего не происходит.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы хотите удалить строки, содержащие :, вы должны указать флаг m, чтобы позволить ^ соответствовать началу каждой строки, а не только ее началу. Ваш шаблон также должен соответствовать всей строке, а не только :.
Изменять:
var pattern = /^\:/g;
к:
var pattern = /^.*?:.*?$/gm;
Что ж, благодаря вам теперь он распознает '': '', и я смог заменить его пробелом. Но как полностью удалить эти строки? Которая теперь содержит несколько пробелов.
Я обновил свой ответ, чтобы разрешить удаление всех строк.
Вы также можете сделать это, чтобы удалить строку с :. Я добавил демонстрацию, показывающую, как удалить всю строку, содержащую этот ненужный символ :, в вашем файле .csv.
const regex = /^.*(:).*$/gm;
const str = `id,name,age
1,aaboss,11
2,eeboss,18
3,:ddboss,15
4,ccboss,14
:5,aboss,13
6,boss,12
7,boss,100:
8,boss,12
`;
const subst = ``;
// The substituted value will be contained in the result variable
// using replace again to remove the empty lines
const result = str.replace(regex, subst).replace(/(^[ \t]*\n)/gm, "");
console.info(result);РЕГЕКС:https://regex101.com/r/JHeRyl/1
@I '-' Я :) моя плохая. Отредактировано для версии JS :): P. Спасибо :)
Мне не нужны эти пустые строки в моем документе. У меня есть данные до и после этих пустых строк - вот что мне нужно удалить.
@ Vil4nte Я редактировал этого приятеля, посмотри еще раз. :) Надеюсь, это сработает для вас сейчас. :) Дай мне знать, нормально это или нет?
Что именно происходит? Вы говорите «ничего не происходит». Как вы выполнили программу?