2015-07-27 3 views
0

Мне нужно найти все файлы, которые соответствуют определенному шаблону в grails.Найти файлы, которые соответствуют шаблону регулярного выражения

Файлы будут помечены как «runid.started.xml». Поэтому я ищу, чтобы найти все, используя следующее регулярное выражение:

/(? <=\.)(.*?)(?=\.)/ 

Я могу найти все файлы, но мне нужно Likit его к файлам матча шаблону. Я нашел несколько примеров, но никто не работает. Это последняя:

New File (c:\\mydirectory\\test).eachFileRecurse (Files) 
{ 
    if (it.name ==~ /(? <=\.)(.*?)(?=\.)/){ 
    println it 
    { 
     println "nope" 
    } 

Это возвращает «Нету» ... Я очень новой для Grails, так что я не знаю, где я буду неправильно. Мое регулярное выражение кажется правильным в онлайн-тестировщике регулярных выражений, но я могу ошибаться.

+0

Любой шанс, что вы могли бы изменить это не на вашем телефоне, чтобы избавиться от странных опечаток, и привести примеры того, какие файлы должны проходить или проваливаться? –

+0

Не сейчас. Довольно много файлов в данном каталоге с .started. в имени файла должно быть возвращено .. 1234.started. xml, blahblah.started.txt, 9876.started.doc..they все будут xml, но я просто говорю любой файл с .started. в файле имя должно пройти все остальное должно быть проигнорировано –

ответ

1

==~ Оператор. Значение данной строки должно быть точным. И (? <=\.)(.*?)(?=\.)doesn't match "runid.started.xml". Так у вас есть два варианта:

  1. Используйте поиска оператора в вашей, если заявление: =~
  2. Написать регулярное выражение, которое exactly matches все имена файлов что-то вроде: \w*\.(\w+)\.\w*
+0

Спасибо..что-то маленькое .. просто показывает, насколько я новый, я хочу использовать grails и groovy..thanks –

+0

@bryannafegar Нет проблем, большинство людей, которые используют регулярные выражения, допустили эту ошибку при одном время или другое. Если бы вы могли, когда вы получили доступ к компьютеру, просто очистите код в своем вопросе. В идеале это было бы полезно для будущих читателей, было бы грустно, если бы они игнорировали вопрос по поводу опечатки в синтаксисе вопроса. –

Смежные вопросы