Я пытаюсь сделать условный оператор If-Then-Else в регулярных выражениях.
Регулярное выражение принимает в качестве входных данных строку, представляющую имя файла.
Вот мои тестовые строки .. .
The Edge Of Seventeen 2016 720p.mp4
20180511 2314 - Film4 - Northern Soul.ts
20150526 2059 - BBC Four - We Need to Talk About Kevin.ts
В первой строке 2016 год представляет год, а в двух других строках 2314 и 2059 - время в 24-часовом формате.
Имя файла следует сохранить без изменений, если оно соответствует этому регулярному выражению:
\d{8} \d{4} -.*?- .*?\.ts
Что я проверил, и это работает. Он может соответствовать следующим тестовым строкам:
20180511 2314 - Film4 - Northern Soul.ts
20150526 2059 - BBC Four - We Need to Talk About Kevin.ts
Если имя файла не соответствует первому регулярному выражению, к нему следует применить это регулярное выражение:
(.*[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-9][0-9])([ _\,\.\(\)\[\]\-]|[^0-9]$)?
Это регулярное выражение cleandatetime, которое Используется Kodi для удаления всего из строки ПОСЛЕ числа четырех git, если оно существует, представляющего дату между 1900 и 2099 гг. Я также проверил это, и оно работает.
Вот что у меня есть попытался создать регулярное выражение If-Then-Else, но оно не работает:
Я использую этот формат -> (? (A) X | Y)
(?(\d{8} \d{4} -.*?- .*?\.ts)^.*$|(.*[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-9][0-9])([ _\,\.\(\)\[\]\-]|[^0-9]$)?)
Это A
\d{8} \d{4} -.*?- .*?\.ts
Это X
^.*$
Это Y
(.*[^ _\,\.\(\)\[\]\-])[ _\.\(\)\[\]\-]+(19[0-9][0-9]|20[0-9][0-9])([ _\,\.\(\)\[\]\-]|[^0-9]$)?
Это ожидаемый результат ...
Тестовая строка: The Edge Of Seventeen 2016 720p.mp4 Ожидаемый результат:"The Edge Of Seventeen 2016" (цитаты включены только для того, чтобы показать, что в конце можно оставить пробел)
Тестовая строка: 20180511 2314 - Film4 - Northern Soul.ts Ожидаемый результат: 20180511 2314 - Film4 - Northern Soul.ts * 1 047 *
Тестовая строка: 20150526 2059 - BB C Four - нам нужно поговорить о Kevin.ts Ожидаемый результат: 20150526 2059 - BB C Four - We Необходимо поговорить о Kevin.ts
Я ищу решение полностью в синтаксисе регулярных выражений. Может кто-нибудь помочь мне заставить его работать, пожалуйста?
Приветствия,
Flex