Главная страница
    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.46 MB
Время: 0.003 c
1-1274184276
Death_R
2010-05-18 16:04
2011.12.11
Access violation при Finalize(массив)


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


15-1313086275
antonn
2011-08-11 22:11
2011.12.11
переход с дельфи на сишарп


2-1314552284
Gu
2011-08-28 21:24
2011.12.11
Dll


1-1276780601
Timer Writer
2010-06-17 17:16
2011.12.11
Перекрытие абстрактного метода в наследнике





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский