dollar
@dollar
Делай добро и бросай его в воду.

Как заменить все одиночные символы на какой-то другой?

Например, заменить все 1 на 2. Но если рядом две 1, то их не заменять.
Пробуем:
'aaa11aaaa1bbb1ccc1d1eeee'.replace(/([^1])1([^1])/g,'$12$2')

Результат
"aaa11aaaa2bbb2ccc2d1eeee"

Ой, что-то пошло не так. Как исправить регулярку? Файл очень большой, а не как в примере.
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Zatmil
@Zatmil
Fullstack-разработчик
Вот, как-то так:
'aaa11aaaa1bbb1ccc1d1eeee'.replace(/(\D|^)([1]{1})((?=[a-zA-Z]|$))/g, '$12$3')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
не так пошло то, что у вас из последовательности c1d1eeee после замены c1d на c2d остаётся 1eeee, которое не попадает под регулярку.
пробуйте
'aaa11aaaa1bbb1ccc1d1eeee'.replace(/([^1])1{1}/g,'$12')
.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы