Удалить всё от начала до второго встретившегося символа в верхнем регистре, перед которым должен быть пробел
Исходный текст:
Капельная кофеварка Melitta Aroma Elegance DeLuxe
Должно получится:
Melitta Aroma Elegance DeLuxe
Пробовал такой регуляркой заменять на пустоту:
^((?:.*?[А-ЯA-Z]){2})
Но удаляет и вхождение, т.е. получается:
elitta Aroma Elegance DeLuxe
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Вы можете использовать
^[А-ЯЁA-Z].*?\s(?=[А-ЯЁA-Z])
Если есть поддержка символьных классов Юникода, можно заменить [А-ЯЁA-Z] на \p{Lu}:
^\p{Lu}.*?\s(?=\p{Lu})
См. пример работы регулярного выражения.
Подробности
^- начало строки[А-ЯЁA-Z]- буква в верхнем регистре.*?- ноль и более символов, отличных от символа перевода строки, как можно меньше\s- пробел(?=[А-ЯЁA-Z])- сразу после текущей позиции должна быть буква в верхнем регистре.