Форум: "Прочее";
Текущий архив: 2011.12.11;
Скачать: [xml.tar.bz2];
ВнизК знатокам регулярных выражений Найти похожие ветки
← →
Юрий Зотов © (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c