2016-05-13 75 views
1

我想用正则表达式来匹配长文件名和csv扩展名。PostgreSQL正则表达式与扩展名和无路径的长文件名模式相匹配

示例文件名:

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$) 

我已经使用Google,阅读和重读,但不能让我的头在这附近。

任何人都可以请帮忙。

+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

相关问题