3err0
@3err0
Гик, Безумец, ITшник, Linux`оид

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

Здравствуйте, составляю regex для переработки данных в элементе данных Zabbix`а.
Но так как я не силен в регулярках отсюда возник в следующий вопрос
В элементе приходит следующая информация:
123456;789012;порядок цифр;снова порядок;и так одиннадцать раз

Порядок цифр идет различный но каждый порядок идет через точку с запятой.
Первый порядок 123456 получаю соответственно следующим regex`ом
[0-9]+

Так как для каждого требуемого элемента данных нужен порядок символов до каждой точки с запятой
Второй порядок пытаюсь получить следующим образом:
[^0-9][0-9]+

Удалив первый порядок, я получаю следующий, но перед ним у меня возникает точка с запятой от предыдущего порядка, которую я всеми способами не разобрался как удалить регуляркой.
Подскажите люди добрые, как мне получить каждый порядок цифр, не получая предыдущего, и не имея символов в нем.

p/s - Нужно одиннадцать регулярок для разбора одной строки
  • Вопрос задан
  • 2040 просмотров
Решения вопроса 2
@roman147147
Ищем цифры, оканчивающиеся точкой с запятой или концом строки, используя позитивный просмотр вперед:

\d+?(?=;|$)

Ссылка.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Предложу ещё вариант
pattern: ^(?:\d*;){10}(\d*)(?:;|$)
output: \1
В фигурных скобках - сколько точек с запятыми надо пропустить.
Вариант допускает любое количество цифр в группах, в том числе и их отсутствие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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