Главная страница
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-1313511154
Псарь
2011-08-16 20:12
2011.12.11
Delphi XE2


2-1314743749
Lamer6666
2011-08-31 02:35
2011.12.11
IdHttp.Post и точка


15-1313501980
TInd
2011-08-16 17:39
2011.12.11
Работа с TIFF.


15-1314011606
MonoLife
2011-08-22 15:13
2011.12.11
Не работает aligment, D7


2-1314263285
Константин
2011-08-25 13:08
2011.12.11
Возможно ли создать массив с именем в процессе выполнения пр...?