2016-05-13 52 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

相關問題