Тестовая ссылка: regexr.com / 42d9c
Это сводит меня с ума.
Я хочу извлечь штрих-коды в строках ниже:
Ceres Juice Apricot 12 x 1lt unit: 6001240102022
Ceres Juice Cranberry& Kiwi Juice 12 x 1lt... unit:
Ceres Juice Guava 12 x 1lt.. unit:6001240222829
Ceres Juice Orange 12x1lt... unit:
Ceres Juice Medley of Fruits 1L x 12 unit: 6001240100660
Возвращается:
6001240102022
6001240222829
6001240100660
Я правильно использую .*(\d{13}).*
А затем я использую $1
, чтобы вернуть первый матч
Но мои результаты выглядят так:
6001240102022
Ceres Juice Cranberry& Kiwi Juice 12 x 1lt... unit:
6001240222829
Ceres Juice Orange 12x1lt... unit:
6001240100660
Причина:
Причиной этой проблемы является то, что «Replace» возвращает исходную строку, если в группе совпадений ничего нет ($ 1).
Обход:
Убедитесь, что в каждой строке есть «совпадение», и поместите его в Match Group 1 ($ 1). Затем поместите ваш фактический матч в Match Group 2 ($ 2). Как это сделать?
Язык / Платформа:
Любой. Я перепробовал все онлайн-сайты Regex, а также Notepad ++