У меня есть список строк. Некоторые из них имеют вид 123-...456. Переменная часть "..." может быть:
-  строка "яблоко" , за которой следует дефис, например. 
123-apple-456 -  строка "банан" , за которой следует дефис, например. 
123-banana-456 -  пустую строку, например. 
123-456(обратите внимание на один дефис) 
Любое слово, отличное от "apple" или "banana", недействительно.
В этих трех случаях я хотел бы сопоставить "яблоко" , "банан" и "" соответственно. Обратите внимание: я никогда не хочу захватить дефис, но я всегда хочу его сопоставить. Если строка не имеет формы 123-...456, как описано выше, то совпадения не существует.
Как написать регулярное выражение для этого? Предположим, у меня есть аромат, который позволяет смотреть, смотреть, искать и не захватывать группы.
Главное наблюдение здесь состоит в том, что когда у вас есть "яблоко" или "банан" , вы также должны иметь конечный дефис, но вы не хотите его сопоставлять. И когда вы сопоставляете пустую строку, у вас не должно быть конечного дефиса. Я думаю, что регулярное выражение, которое инкапсулирует это утверждение, будет правильным.
