@Huntgold

Как заменить каждое второе повторяющееся предложение нужными данными?

270,simple,,"BABLABLABLA111",1,0,visible,"BABLABLABLA111","",,,,,1,,,0,0,,,,,1,,,"1,08","",,,,,,,,,,,0,classic-editor,,,,,"BABLABLABLA111.",90,1,75,

271,simple,,"BABLABLABLA222",1,0,visible,"BABLABLABLA222","'""",,,,,1,,,0,0,,,,,1,,,"0,82","",,,,,,,,,,,,0,classic-editor,,,,,"BABLABLABLA222",60,1,90,


Есть такого вида база. В каждой строке есть уникальное название которое повторяется три раза "BABLABLABLA*N*". Нужно сделать так, чтобы каждое второе уникальное "BABLABLABLA*N*" заменялась на нужную информацию. Результат должен быть:

270,simple,,"BABLABLABLA111",1,0,visible,"Hello111","",,,,,1,,,0,0,,,,,1,,,"1,08","",,,,,,,,,,,0,classic-editor,,,,,"BABLABLABLA111.",90,1,75,

271,simple,,"BABLABLABLA222",1,0,visible,"Hello222","'""",,,,,1,,,0,0,,,,,1,,,"0,82","",,,,,,,,,,,,0,classic-editor,,,,,"BABLABLABLA222",60,1,90,


Я не дружу с регулярками. Очень надеюсь на вашу помощь
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@Huntgold Автор вопроса
В общем не зная регулярок сделал так как я знаю и получилось

let all = '270,simple,,"BABLABLABLA111",1,0,visible,"BABLABLABLA111","",,,,,1,,,0,0,,,,,1,,,"1,08","",,,,,,,,,,,0,classic-editor,,,,,"BABLABLABLA111.",90,1,75,';
let name = 'BABLABLABLA111';
let result = all.search(name.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")) + name.length + 15;
all = all.split('');
for (let i = 0; i < name.length; i++){
  all[result+i] = '';
}
all[result]= 'Hello111';
all = all.join('');
console.log(all);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
WblCHA
@WblCHA
'270,simple,,"BABLABLABLA111",1,0,visible,"BABLABLABLA111","",,,,,1,,,0,0,,,,,1,,,"1,08","",,,,,,,,,,,0,classic-editor,,,,,"BABLABLABLA111.",90,1,75,'
  .replace(/(?<="([A-Za-z_]+\d+)"[^\1]*")\1(?=")/, 'test')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы