2013-07-26 5 views
1

Я пытался найти что-то очень специфичное для соответствия имени файла в perl.Perl dots имя файла совпадение

У меня есть ряд файлов под названием:

AAA.test.xml and AAA.xml. 

и я передаю в функцию полного пути к файлу.

Я хотел бы сравнить имя файла, и если имя файла AAA.xml, я хотел бы скопировать его в другой каталог.

Это мой вопрос: Есть ли способ сравнить имя файла и проверить, содержит ли он 2 точки в имени?

Edit: Использование REGEX прекрасно, а я просто не знаю, как это сделать в Perl

ответ

1

Если у вас есть имена файлов (это звучит, как вы делаете), вы можете просто использовать простое регулярное выражение который проверяет два литерала. Например:

if ($name =~ /\..*\./) { do stuff } 

Важно отметить, что персонаж "." является специальным в регулярных выражениях. Последовательность символов "." означает литерал "."; последовательность символов «.», без обратной косой черты, означает любой символ. Кроме того, «*» означает, что предыдущая вещь должна соответствовать нулю или более раз.

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

+0

Спасибо! Я представил себе это, я помню, что из сопоставления с образцом, но это первый раз, когда я делаю это в perl, я собирался использовать glob, но вам нужен массив имен файлов! Спасибо! – 7dr3am7

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