У меня возникают проблемы, когда я не могу понять, как найти 1-й экземпляр чего-либо, а затем работать в обратном направлении, используя Regex ...
У меня есть несколько строк, в которых код продукта объединяется с продуктом. имя. К сожалению, разделитель (тире), отделяющий код продукта от кода продукта, одинаков.
Код продукта может иметь различное количество разделителей. Некоторые коды продуктов имеют одну черту, в то время как другие могут иметь несколько штрихов.
Но я знаю, что все названия продуктов имеют пробел.
Итак, взяв эти две строки,например:
- "ABC-ER-015-30-NEW YORK ДВУХТОНАЛЬНЫЕ СЕРЬГИ"
- "ABC-1234-CALIFORNIA CUSTOM PRODUCT"
Я хотел бы сделать эквивалент:
- Найдите первый пробел ...
- Затем вернитесь назад, чтобы найти последний тире ...
- Затем извлеките все до этой черты ...
Итак, что я хочу извлечь из приведенных выше 2 примеров: - "ABC-ER-015-30" - "ABC-1234 "
Это работает, если в имени элемента нет тире:
(.*)-
Но если в имени элемента есть тире, он захватывает часть имени элемента.
Я чувствую, что что-то очень простое, что мне не хватает.