Мне нужно удалить лишнюю информацию в списке. В основном я хочу удалить все после первого пробела и до числа, которое начинается с 31117. Вот пример:

0300045956 31117016167830

0198730888: 31117005925115

0208022376 (алк. Бумага) $ 26,00 31117005925149

0918526582; 0918526590 (шт.) 31117005925677

И как я хочу, чтобы это выглядело так:

0300045956 31117016167830

0198730888 31117005925115

0208022376 31117005925149

0918526582 31117005925677

1 ответ1

1

Решение, которое вы просили, заключается в использовании регулярного выражения. Вы хотите найти:

([^ ]*)(.*)(31117*)

и заменить его на:

\1 \3

Это определяет три группы (каждая заключена в скобки). Первая группа - ноль или более не пробелов; так что это все, что ведет, но не включает в себя первый пробел. Вторая группа может быть любым количеством любых символов, если она не начинается с 31117; так что это первый пробел и все, что следует, пока это не 31117. Третья группа - все, что начинается с 31117.

Обратите внимание, что @DavidPostill является правильным. Избавляемся от всего после первого пробела и до 31117 в этом:

0918526582;0918526590 (pbk.) 31117005925677

это действительно:

0918526582;0918526590 31117005925677

Если вы ошиблись, что вы хотите, и вы действительно хотите это:

0918526582;0918526590 (pbk.) 31117005925677

стать этим:

0918526582 31117005925677

Затем вам нужно изменить регулярное выражение следующим образом:

([^; ]*)(.*)(31117*)

Это добавляет точку с запятой к первой группе: любое количество любых символов, кроме пробела или точки с запятой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .