Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.47 MB
Время: 0.005 c
4-1252106846
demon
2009-09-05 03:27
2011.12.11
Как обработать нажатие на кнопку минимизации?


15-1313785804
Юрий
2011-08-20 00:30
2011.12.11
С днем рождения ! 20 августа 2011 суббота


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


2-1314799215
Васюня
2011-08-31 18:00
2011.12.11
Пожлуйста, как нати все файлы в папке!


3-1268491941
Leon
2010-03-13 17:52
2011.12.11
Экспорт БД в формате XML





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский