Как «захватить» регуляркой оставшуюся часть строки после третьего дефиса?
Вроде бы простой вопрос, но никак не могу его решить.
Есть строка (в ней бывает разное количество слов, написанные через дефис).
Например: product-promo-video-photo-image
Надо с помощью регулярки "захватить" ту часть строки, которая находится после третьего дефиса (включая его самого).
В моем случае регулярка работает следующим образом: все то, что она "захватывает" в результате удаляется и остается ли та часть строки, которую она не "трогает".
webhabr, Вы неправильно поняли. Регулярные выражения, сами по себе, ничего не ищут и не удаляют. Они используются в каких-то функциях языков программирования для выполнения тех или иных действий.
Решение найдено! (?<=(.*-.*){2})-.*
P.S. Это моя вина, что я изначально более подробно не объяснил свою ситуацию.
Спасибо вам за ваше время и желание помочь.
Регулярки не удаляют и не модифицируют исходную строку.
Вашу задачу нужно рассматривать как:
"Взять первые три слова, разделенные дефисами".
Можно сматчить примерно такой регуляркой: ^([a-z]*\-){2}[a-z]*
"Взять два раза слово+дефис и еще слово впереди".