【问题标题】:PostgreSQL Regex match for long file name pattern with extension and no pathPostgreSQL 正则表达式匹配具有扩展名且没有路径的长文件名模式
【发布时间】:2016-09-09 16:30:31
【问题描述】:

我正在尝试使用正则表达式来匹配带有 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 postgresql


【解决方案1】:

文件名中有空格,所以添加到正则表达式中:

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

regex demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 2012-06-05
    • 2013-10-16
    • 2022-10-19
    • 1970-01-01
    相关资源
    最近更新 更多