Текущее состояние выражения:
^(.*)\/(.*)(?=\s\[(\d{1,})\sиз\s(\d{1,})\])
Можно ли сделать так, что бы 3я и 4я группа не захватывались если их нет, а когда есть, то захватывать?
На данный момент если 3я или 4я группа отсутствует, то строка вообще не матчится.
Пример данных для тестов:
Триплексоголик ТВ-2 / xxxHolic: Kei [13 из 13]
Золотое Божество ТВ-2 / Golden Kamuy TV-2 [11 из 12]
Космический линкор Тирамису ТВ-2 / Uchuu Senkan Tiramisu TV-2 [12 из 13]
Шестизарядник / Six Shooter
Изначальный вариант:
/^([^\/]+)\/(.+?)(?=\[(\d+)\hиз\h(\d+)]|$)/m
В комментариях вы написали, что сделали небольшие изменения. Не совсем понимаю к чему эти изменения с добавлением квантификатора \W
, а также в логике между выбором конца строки ($
), и захватом 3-ей и 4-ой групп.
Если речь об избавлении выделенных групп от пробелов, то можно привести к такому виду:
/^([^\/]+)\s\/\s(.+?)(?=\s\[(\d+)\hиз\h(\d+)]|$)/m
См. демо регулярного выражения.
Подробны детали по выражению:
^
- начало строки([^\/]+)
- первая группа, захватывает все до слэша (/
)\s\/\s
- два пробела, между которыми стоит слэш(.+?)
- вторая захватывающая группа(?=
- начало позитивного просмотра вперед
\s\[(\d+)\hиз\h(\d+)]
, или (|
) же конец строки ($
))
- конец позитивного просмотра впередВиртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть массив int [] lvl, который можно менять количество элементов и значения через Inspector в ЮнитиНужно создать второй массив int[] keys, Length которого...
Мне не совсем понятен один момент с ООПЕсли я использую абстрактный класс, и пытаюсь в него подгрузить сторонний класс (не extends), находящийся...
Они вроде как оба возвращают ассоциативный массив В чем разница