Я уже часами вкладывал деньги в гугл без всякой удачиЯ знаком с RegEx, но ни в коем случае не эксперт.
Мне нужно взять строку 'PAB 123 456' и вернуть токен 'AB123456'.
Справочная информация: У меня есть приложение, которое сопоставляет продукты через штрих-коды / QR-коды. Приложение читает два кода и пытается определить, совпадают ли они. Это приложение типа контроля качества, написанное на .net
. Используется два RegEx, сравнивается первое совпадение с каждым RegEx. Если они одинаковы ... успехов! Существует довольно много таких пар RegEx, которые соответствуют различным комбинациям, и приложение просто пытается каждую пару по очереди.
Итак, используя регулярное выражение типа '(? <= P) ([0-9A-Z]+) 'в строке типа' PAB123456 'это соответствует и возвращает' AB123456 'в качестве первого токена. </p>
Использование второго регулярного выражения' (? <= P) ([0-9A-Z] +) 'в строке типа '[) -071J 2P 1T PAB123456' совпадает и возвращает 'AB123456' </p>
Таким образом, обе совпадающие строки одинаковы .. success.
Однако обнаружен случай, которыйвызывает у меня проблемы. Мне нужно удалить пробелы перед выполнением соответствующего регулярного выражения.
Проблема: Мне нужно взять 'PAB 123 456' и вернуть токен 'AB123456'. Для этого мне нужно удалить пробелы во всем после ^ P, совпадая с [0-9A-Z] после удаления.
Я полагаю, что может быть другой случай, когда у меня есть текст вроде '[) -071J2P 1T PAB-123-456 ', где я должен найти' P 'и затем удалить тире, а затем сопоставить в следующем.
Что не удалось: Просто сопоставление [0-9A-Z] пробел [0-9A-Z] пробел [0-9A-Z] пробел не будет работать, так как первый возвращаемый токен будет включать пробелы. Я попытался сделать упреждающий просмотр и удалить пробелы, но не смог получить правильный синтаксис, я также попытался выработать синтаксис для сопоставления и удаления пробелов, но снова не смог получить правильный синтаксис.