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