Regex после последнего sla sh выбрать первый di git отдельная подстрока из 1 или 2 букв - PullRequest
1 голос
/ 28 мая 2020

Я относительно новичок в RegEx, и мне трудно найти следующее совпадение, и я надеюсь, что сообщество может помочь.

У меня есть URL-адреса в следующем формате:

https://somedomain.com/sub/SUBSITE/FOLDER/12345DR6789

Где меня интересует извлечение определенных c цифр из идентификатора '12345DR6789' в конце строки, в частности, первого числа c di git '1 'и строка в середине' DR ', которая может состоять из 1 или 2 букв, поэтому результат для:

12345DR6789 = 1DR

Другой пример с одной буквой:

72345A6789 = 7A

Формат всегда будет одинаковым, а длина будет варьироваться в зависимости от того, присутствуют ли 1 или 2 буквы.

Мне удалось получить письмо (буквы), проанализированное с помощью :

(? <= \ D {5}) (. *?) (? = \ D {3,4} $) </p>

Но я не знаю, как включить / concat первый di git после sla sh.

Другая стратегия может заключаться в сопоставлении всего после последнего sla sh '72345A6789' и удалении 4 цифры по обе стороны от букв, но я не знаю, как это сделать.

Заранее благодарю за любую помощь.

1 Ответ

1 голос
/ 28 мая 2020

Вы можете использовать 2 группы захвата вместо использования поиска. Поиск в вашем примере будет соответствовать только одному значению.

Принимая во внимание квантификаторы {5} и {3,4} из примера шаблона:

(\d)\d{4}([A-Z]{1,2})\d{3,4}$

Частично

  • (\d) Захват группа 1 , соответствие ди git
  • \d{4} Соответствие 4 цифрам
  • ( Захват группа 2
    • [A-Z]{1,2} Соответствует 1-2 раза AZ
  • ) Закрытая группа \d{3,4} Соответствует 3-4 цифрам
  • $ Конец строки

Regex demo

Если шаблон должен начинаться с http:

^https?://\S+/(\d)\d{4}([A-Z]{1,2})\d{3,4}$

Regex демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...