2016-05-13 1 views
1

Я пытаюсь использовать регулярное выражение для соответствия длинному имени файла с расширением csv.Соответствие PostgreSQL Regex для длинного шаблона имени файла с расширением и без пути

имена файлов Пример:

Always TheSameText_ExtractStoreLevelUnLtdByWeek_STORENAME_20160306.csv 
    Always TheSameText_ExtractStoreLevelUnLtdByWeek_ANOTHERSTORENAME_20150705.csv 

Я использую:

file_name_regex text := E'^[a-zA-Z0-9_-]+\\.csv$'; 

С чеком:

IF 
      file_name !~ file_name_regex 
    THEN 
      RAISE EXCEPTION 'Invalid data file name (% doesn''t match %)', file_name, file_name_regex; 
    END IF; 

я получаю:

Invalid data file name (Always TheSameText_ExtractStoreLevelUnLtdByWeek_STORENAME_20150705.csv doesn't match ^[a-zA-Z0-9_-]+\.csv$) 

У меня есть googled, читать и перечитывать, но не могу обдумать это.

Может ли кто-нибудь помочь.

+0

Существует пространство в имени файла, так что добавьте его в регулярное выражение: ' file_name_regex text: = E '^ [a-zA-Z0-9 _-] + \\. csv $'; ' –

+0

Святые дымы! Не могу поверить, что я уставился на это и пропустил простое пространство. Спасибо миллион и такой быстрый ответ. Отлично сейчас! –

ответ

0

Существует пространство в имени файла, так что добавьте его в регулярное выражение:

file_name_regex text := E'^[ a-zA-Z0-9_-]+\\.csv$'; 
          ^

Смотрите regex demo

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