Соответствующие группы в регулярном выражении - PullRequest
0 голосов
/ 27 мая 2018

Я хотел сопоставить 2 группы, используя регулярные выражения из следующих строк:

  • LyraCalSWC20161203.png
  • LyraL4C20180302.png

Это регулярное выражениеЯ предложил - Lyra([A-Za-z]{3,6})+(\\d{8}).*

Это должно соответствовать 2 группам.Первая - L4C или CalSWC, а вторая группа - строка даты, состоящая из 8 чисел.

Я могу заставить работать одну группу, например) LyraL4C(\\d{8}).*, но не ту, которая обрабатывает оба варианта.

Любая помощь высоко ценится

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Возможно, вы захотите использовать универсальный селектор \w, выбирающий все символы слов для соответствия обеим версиям ваших семплов

^Lyra(\w{3,6})(\d{8})\.png$

Демо

Побег за ^Lyra(\\w{3,6})(\\d{8})\\.png$

0 голосов
/ 27 мая 2018
  • Ваш шаблон Lyra([A-Za-z]{3,6})+(\\d{8}).* довольно хорош, но вы упускаете, что L4C содержит не только буквы, но и цифры.
  • Кроме того, вы также указали, что первая группа содержит от 3 до 6 элементов {3,6}, поэтому вам не нужно использовать +

Так что вам нужно Lyra([A-Za-z0-9]{3,6})(\\d{8}).*

См. Демонстрационную версию Regex

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