Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.11;
Скачать: CL | DM;

Вниз

К знатокам регулярных выражений   Найти похожие ветки 

 
Юрий Зотов ©   (2011-08-18 14:53) [0]

Удовлетворяет ли имя файла
D004002+C777777-20110321-093441989-1.xml
маске
[dD]\\d\\d\\d\\d\\d\\d[+][cC]\\d\\d\\d\\d\\d\\d[-+].*[.]xml
?
Спасибо.


 
Медвежонок Пятачок ©   (2011-08-18 14:54) [1]

плюсик экранирован


 
Медвежонок Пятачок ©   (2011-08-18 14:55) [2]

и точки тоже


 
Медвежонок Пятачок ©   (2011-08-18 14:56) [3]

и перед d двойные слеши вместо одинарных.
какой тип регулярок-то?


 
Юрий Зотов ©   (2011-08-18 15:19) [4]

java.util.regex


 
Омлет ©   (2011-08-18 15:29) [5]

Почему бы просто не проверить?
java.util.regex.Matcher


 
Mystic ©   (2011-08-18 15:36) [6]

Нюанс: эта маска экранирована, если ее разэкранировать, то должна удовлетворять. Т. е. на самом деле маска
[dD]\d\d\d\d...
Но в кавычках ее надо записывать как раз
"[dD]\\d\\d\\d\\d\\d\\d[+][cC]\\d\\d\\d\\d\\d\\d[-+].*[.]xml"

Ну и .* работает жадно, т. е. если на входе несколько имен файлов, то совпадением будет все.


 
Юрий Зотов ©   (2011-08-18 15:55) [7]

Да, маска в кавычках (строковая константа).

Правила построения имени файла:

буква d или D
6 цифр
знак +
буква c или C
6 цифр
знак - или +
произвольный набо символов, не содержащий точку
точка
xml

Задача - составить список файлов в каталоге, имена которых удовлетворяют этим правилам.

Вопрос, наверное, должен звучать так - соответствует ли этим правилам маска
"[dD]\\d\\d\\d\\d\\d\\d[+][cC]\\d\\d\\d\\d\\d\\d[-+].*[.]xml"


 
Mystic ©   (2011-08-18 16:03) [8]

"[dD]\\d\\d\\d\\d\\d\\d[+][cC]\\d\\d\\d\\d\\d\\d[-+].*?[.]xml"

По умолчанию поведение .* жадное, т. е. будет проглочено максимально возможное количество символов. Например, если у нас текст

D004002+C777777-20110321-093441989-1.xml %%% D004002+C777777-20110321-093441989-1.xml,

то совпадением будет вся эта строка

[dD]\\d\\d\\d\\d\\d\\d[+][cC]\\d\\d\\d\\d\\d\\d[-+] =
D004002+C777777-

.* =
20110321-093441989-1.xml %%% D004002+C777777-20110321-093441989-1

[.]xml =
.xml

И еще, если на вход регулярки подается только имя файла, то этой макске удовлетворяют также все файлы с префиксами, вроде

qqqqqqqqD004002+C777777-20110321-093441989-1.xmlt


Ну и количество повторений можно указывать в фигурных скобках, например

"[dD]\\d{6}[+][cC]\\d{6}[-+].*[.]xml"


 
Mystic ©   (2011-08-18 16:04) [9]

Ну а так все должно быть верно


 
han_malign   (2011-08-18 17:23) [10]


> произвольный набо символов, не содержащий точку
...
> также все файлы с префиксами, вроде

"\\A(?i)D\\d{6}\\+C\\d{6}[-+][^.]*\\.xml\\Z"


 
Юрий Зотов ©   (2011-08-18 18:35) [11]

Всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2011.12.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
15-1313958600
Юрий
2011-08-22 00:30
2011.12.11
С днем рождения ! 22 августа 2011 понедельник


2-1314125935
Puw
2011-08-23 22:58
2011.12.11
Остановить закрытие чужого окна


2-1314451245
Vladimir
2011-08-27 17:20
2011.12.11
Сколько ресурсов требуется программе


15-1314000095
alexdn
2011-08-22 12:01
2011.12.11
Где можно анонсировать свою программу?..


15-1314217798
Юрий
2011-08-25 00:29
2011.12.11
С днем рождения ! 25 августа 2011 четверг