2

В окне редактора Sublime Text есть две строки:

011
011

Мне необходимо превратить это в:

0;1;1
0;1;1

Т.е. поставить точку с запятой после каждой цифры. Если цифра стоит в конце строки, то после нее ; не ставиться.

Сейчас я делаю это в два такта:

1) найти: (\d) заменить: $1; получаю:

0;1;1;
0;1;1;

2) Удаляю ;, те что в конце — найти: ;$ заменить:

и получаю, то что хотел:

0;1;1
0;1;1

Как мне сделать тоже самое, но одним регулярным выражением?

Dmitriy Simushev
  • 17,999
  • 5
  • 49
  • 85

1 Answers1

2

Такие задачи можно эффективно решать используя механизм утверждений (Lookaround). В данном случае отлично подойдет отрицательное утверждение вперед (Negative Lookahead):

/\d(?!$|\n)/

Не знаю, насколько это работает в Sublime, но вполне соответствует стандарту PCRE.

А вот и пример на regex101.

Dmitriy Simushev
  • 17,999
  • 5
  • 49
  • 85