regex - PostgreSQL Regex 匹配带扩展名且无路径的长文件名模式

标签 regex postgresql

我正在尝试使用正则表达式来匹配带有 csv 扩展名的长文件名。

示例文件名:

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

我用谷歌搜索、阅读和重读,但无法理解这一点。

谁能帮忙。

最佳答案

文件名中有一个空格,因此将其添加到正则表达式中:

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

参见 regex demo

关于regex - PostgreSQL Regex 匹配带扩展名且无路径的长文件名模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210632/

相关文章:

postgresql - 在一列中包含多个值的子集记录

c - postgresql解析器将表名放在哪里?

php - 识别第二个实例

c++ - C++中的多行正则表达式模式

postgresql - 撤销角色对 postgres 数据库的访问

python - asyncpg.异常.DataError : invalid input for query argument python

regex - Groovy:如何检查一个列表是否包含来自另一个包含正则表达式格式的列表的项目

java - 为什么正则表达式 ((x,y)|(x,z)) 是不确定的?

正则表达式在同一行重复单词

postgresql - 具有已删除属性的历史表的累积计数