преобразует 123abcf3r2e в 123ABC-F3R2E - PullRequest
0 голосов
/ 13 мая 2019

Как преобразовать буквенно-цифровую комбинацию в верхний регистр с тире после каждых 5 цифр с помощью регулярных выражений, например ::10000

123abe5r4t до 123AB-E5R4T

1 Ответ

1 голос
/ 13 мая 2019

Используйте [0-9a-z]{1,5} в качестве соответствия части (с опцией g) и \U\0- в качестве замены .

\U replace part) заботится о преобразовании в верхний регистр.

\0 копирует весь матч, а - добавляет минус.

Единственное, что нужно сделатьвпоследствии следует удалить завершающий минус (после последнего совпадения).

Рабочий пример см. https://regex101.com/r/8WXUhd/1

Edit

Я переделал приведенный выше пример в JavaScript-кодрегулярное выражение:

var a = '123abe5r4txx234';
var b = a.replace( /[0-9a-z]{1,5}/g, u => u.toUpperCase() + '-').slice(0, -1);
print(a);
print(b);

Распечатывает (источник и результат):

123abe5r4txx234
123AB-E5R4T-XX234
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...