Объединение групп возрастающих цифр с регулярным выражением - PullRequest
0 голосов
/ 19 октября 2018

Привет, сообщество StackOverflow!

Я пишу универсальное решение для именования соглашений с кодами курса и их объединения.Простой пример кода курса выглядит следующим образом: 00001

В настоящее время у меня есть набор кодов курса в строке.Примерно так:

00001_00002_00003_00005_00008_00009

Я все еще новичок в использовании регулярных выражений, но возможно ли создать выражение, которое проверяет, если

Каждый код между разделителем увеличивается наодин из его предыдущих кодов.Затем он берет первый и последний из этих кодов, удаляет средние коды и заменяет их на «-». Поэтому для того же набора кодов я получу:

00001-00003_00005_00008-00009

Даже если код вернется в следующем виде: 00001 _-_ 00003_00005_00008 _-_ 00009, я мог бы найти строку после факта, чтобы заменить '_-_' на '-'.

Всекоды уже в порядке приращения, поэтому придется просто перебирать слева направо.

Пока что у меня есть (я знаю, что это довольно скромно): https://regex101.com/r/Yb1gSq/2/

У кого-нибудь есть указатели?Или я должен искать другое решение, кроме регулярных выражений?

...