2016-05-13 3 views
1

Ich versuche Regex zu verwenden, um einen langen Dateinamen mit einer CSV-Erweiterung übereinstimmen.PostgreSQL Regex Übereinstimmung für lange Dateinamen Muster mit der Erweiterung und keinen Pfad

Beispieldateinamen:

Always TheSameText_ExtractStoreLevelUnLtdByWeek_STORENAME_20160306.csv 
    Always TheSameText_ExtractStoreLevelUnLtdByWeek_ANOTHERSTORENAME_20150705.csv 

Ich verwende:

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

Mit einem Scheck:

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

ich:

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

Ich habe gegoogelt, gelesen und neu gelesen, aber ich kann das nicht verstehen.

Kann mir bitte jemand helfen.

+0

Es ist ein Raum, in dem Dateinamen, so fügen Sie es den regulären Ausdruck: ' file_name_regex text: = E '^ [a-zA-Z0-9 _-] + \\. csv $'; ' –

+0

Heilige Rauch! Ich kann nicht glauben, dass ich dies anstarrte und einen einfachen Raum vermisste. Danke eine Million und so eine schnelle Antwort. Arbeiten jetzt perfekt! –

Antwort

0

Es ist ein Raum, in dem Dateinamen, so fügen Sie es den regex:

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

Siehe regex demo

Verwandte Themen