Выражение Regex для выбора имени файла с 2 точками из списка файлов - PullRequest
0 голосов
/ 09 мая 2018

Мне нужно выражение regex , которое выберет файлы с определенным форматом имени файла из списка файлов zip.
Мне нужно выбрать файлы с именами файлов в следующем формате:

<A-Z/a-z/0-9/special char>.<A-Z/a-z/0-9/special char>.zip

Имя файла содержит 2 точки ., и это может быть любая строка между точками .
Например, допустимые имена файлов, которые можно выбрать:

abc123.34efg.zip
qwe.123.zip
as_2ww.as_tyy.zip
23.fff.zip
asd.efg.zip

Это может быть буква или число или специальный символ или комбинация между между ними, между точками .
Обратите внимание, что это может быть только 2 точки . в имени файла.
Все, кроме 2 точек ., не является допустимым именем файла и не будет выбрано.

Ниже указаны неверные имена файлов:

abc.zip
abc.123.efg.zip
as_1.efg.ddd.rr.zip
ee_rr.zip

Я попробовал следующее регулярное выражение:

[^.]*\\.[^.].zip     

но не работает. Может быть, это не так.
Пожалуйста, дайте мне знать правильное выражение регулярного выражения, чтобы выбрать нужное имя файла

1 Ответ

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

Вы можете попробовать это (я поставил двойную обратную косую черту, предполагая, что ваше регулярное выражение находится внутри строки Java.):

^[^.]+\\.[^.]+\\.zip$

Также, хорошая альтернатива, указанная Xirema

^(?:[^.]+\\.){2}zip$)

Я проверял это на этом сайте .С этим входом:

abc123.34efg.zip
qwe.123.zip
as_2ww.as_tyy.zip
23.fff.zip
asd.efg.zip
abc.zip
abc.123.efg.zip
as_1.efg.ddd.rr.zip
ee_rr.zip

Также протестирован с этим входом (спасибо Matt.G )

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